执行 mysql 查询时,我得到了以下 unicode 字符串。
\u30ad\u30e3\u30f3\u30bb\u30eb
我尝试打印上面没有正确更改为 utf 字符的字符串。所以,我尝试将“\”替换为“\”。
str.replace("\\\\","\\"); //没有正确替换
替换功能在我的场景中不起作用。
在我的情况下,如何将“\\”替换为“\”。
对不起我的英语不好 !!
任何想法 ?
执行 mysql 查询时,我得到了以下 unicode 字符串。
\u30ad\u30e3\u30f3\u30bb\u30eb
我尝试打印上面没有正确更改为 utf 字符的字符串。所以,我尝试将“\”替换为“\”。
str.replace("\\\\","\\"); //没有正确替换
替换功能在我的场景中不起作用。
在我的情况下,如何将“\\”替换为“\”。
对不起我的英语不好 !!
任何想法 ?
字符串是不可变的,一旦创建就无法更改。您需要将从replace()
方法返回的对象分配给新的字符串引用(或使用相同的引用):
str = str.replace("\\\\","\\");
String
像这样的文字"\u30ad\u30e3\u30f3\u30bb\u30eb"
被 java 编译器转换为 unicode 字符串(“キャンセル”)。这意味着它仅适用于您放入源文件中的字符串。
如果您\u30ad\u30e3\u30f3\u30bb\u30eb
从数据库中收到 string: ,则将\
其视为任何其他字符。如果你删除它,你只会得到:u30adu30e3u30f3u30bbu30eb
.
相反,您应该编写一种方法(或使用现有的方法),该方法将\u????
在 a 中找到所有转义序列 ( )String
并将它们转换为真实字符。例如,请参见此处。