-2

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

\u30ad\u30e3\u30f3\u30bb\u30eb

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

str.replace("\\\\","\\"); //没有正确替换

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

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

对不起我的英语不好 !!

任何想法 ?

4

2 回答 2

2

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

str = str.replace("\\\\","\\");
于 2012-04-04T10:28:32.147 回答
1

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

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

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

于 2012-04-04T12:19:29.110 回答