执行mysql查询时,我得到了下面的unicode字符串。
\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb
我试图打印上面没有正确更改为utf字符的字符串。 所以,我试图将“\”替换为“\”。
str.replace(“\\\\”,“\\”); //未正确替换
替换功能在我的场景中不起作用。
在我的情况下如何将“\\”替换为“\”。
抱歉我的英语!!有什么想法吗?
答案 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。