unicode中的字符串替换不起作用

时间:2012-04-04 10:18:06

标签: java

执行mysql查询时,我得到了下面的unicode字符串。

\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb

我试图打印上面没有正确更改为utf字符的字符串。 所以,我试图将“\”替换为“\”。

  

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

替换功能在我的场景中不起作用。

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

抱歉我的英语!!

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

String是不可变的,一旦创建它就无法更改它。您需要将从replace()方法返回的对象分配给新的String引用(或使用相同的引用):

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

答案 1 :(得分:1)

String这样的

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

如果您从数据库收到字符串:\u30ad\u30e3\u30f3\u30bb\u30eb,则\将被视为任何其他字符。如果您删除它,您将获得:u30adu30e3u30f3u30bbu30eb

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