执行mysql查询时我得到了下面的unicode字符串。unicode中的字符串替换不起作用
\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb
我必须尝试打印上面的字符串已无法正常改为UTF字符。 所以,我试着将“\”替换为“\”。
str.replace(“\\\\”,“\\”); //未正确替换
替换函数在我的方案中不起作用。
我如何在我的情况下将“\\”替换为“\”。
对不起,我的英语!
有什么想法?
执行mysql查询时我得到了下面的unicode字符串。unicode中的字符串替换不起作用
\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb
我必须尝试打印上面的字符串已无法正常改为UTF字符。 所以,我试着将“\”替换为“\”。
str.replace(“\\\\”,“\\”); //未正确替换
替换函数在我的方案中不起作用。
我如何在我的情况下将“\\”替换为“\”。
对不起,我的英语!
有什么想法?
字符串是不可变的,一旦你创建它就不能改变它。需要分配是从replace()
方法返回到一个新的String参考的对象(或使用同一参考):
str = str.replace("\\\\","\\");
String x =“\\ u30ad \ u30e3 \\ u30f3 \\ u30bb \\ u30eb”; x = x.replace(“\\\\”,“\\”); print(x) – sprabhakaran 2012-04-04 10:32:21
上面的代码不是打印utf8字符 – sprabhakaran 2012-04-04 10:32:52
你到底需要什么?为什么要替换“\ u”特殊字符的“\”? – 2012-04-04 10:46:59
String
文字等"\u30ad\u30e3\u30f3\u30bb\u30eb"
被转换为Unicode字符串(“キャンセル”)由Java编译器。这意味着它只适用于放在源文件中的字符串。
如果您收到来自数据库的字符串:\u30ad\u30e3\u30f3\u30bb\u30eb
,则将\
视为任何其他字符。如果你删除它,你只会得到:u30adu30e3u30f3u30bbu30eb
。
相反,您应该编写一个方法(或使用现有的方法),它将在String
中找到所有转义序列(\u????
)并将它们转换为真实字符。例如,请参阅here。
感谢哥们:) ......它工作正常 – sprabhakaran 2012-04-04 13:04:01
'我如何将“\”替换为“\”'。来吧! – 2012-04-04 10:19:55
这工作正常。 – 2012-04-04 10:20:31
@ Eng.Fouad对不起..“\\”到“\” – sprabhakaran 2012-04-04 10:27:02