2012-04-04 102 views
-2

执行mysql查询时我得到了下面的unicode字符串。unicode中的字符串替换不起作用

\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb

我必须尝试打印上面的字符串已无法正常改为UTF字符。 所以,我试着将“\”替换为“\”。

str.replace(“\\\\”,“\\”); //未正确替换

替换函数在我的方案中不起作用。

我如何在我的情况下将“\\”替换为“\”。

对不起,我的英语!

有什么想法?

+4

'我如何将“\”替换为“\”'。来吧! – 2012-04-04 10:19:55

+0

这工作正常。 – 2012-04-04 10:20:31

+0

@ Eng.Fouad对不起..“\\”到“\” – sprabhakaran 2012-04-04 10:27:02

回答

2

字符串是不可变的,一旦你创建它就不能改变它。需要分配是从replace()方法返回到一个新的String参考的对象(或使用同一参考):

str = str.replace("\\\\","\\"); 
+0

String x =“\\ u30ad \ u30e3 \\ u30f3 \\ u30bb \\ u30eb”; x = x.replace(“\\\\”,“\\”); print(x) – sprabhakaran 2012-04-04 10:32:21

+0

上面的代码不是打印utf8字符 – sprabhakaran 2012-04-04 10:32:52

+0

你到底需要什么?为什么要替换“\ u”特殊字符的“\”? – 2012-04-04 10:46:59

1

String文字等"\u30ad\u30e3\u30f3\u30bb\u30eb"被转换为Unicode字符串(“キャンセル”)由Java编译器。这意味着它只适用于放在源文件中的字符串。

如果您收到来自数据库的字符串:\u30ad\u30e3\u30f3\u30bb\u30eb,则将\视为任何其他字符。如果你删除它,你只会得到:u30adu30e3u30f3u30bbu30eb

相反,您应该编写一个方法(或使用现有的方法),它将在String中找到所有转义序列(\u????)并将它们转换为真实字符。例如,请参阅here

+0

感谢哥们:) ......它工作正常 – sprabhakaran 2012-04-04 13:04:01