【发布时间】:2014-01-15 19:35:38
【问题描述】:
在我的 android 应用程序中,我的服务器返回一个像这样的 UTF-8 编码响应;
\u00e2\u0080\u0098 rank \u00e2\u0080\u0099 相当于 'rank'。请帮助我将此 Unicode 字符转换为相应的符号
即
1.\u00e2\u0080\u0098 -> '(左单引号)
2.\u00e2\u0080\u0099 -> '(右单引号)
【问题讨论】:
-
我试过下面的代码 String str = StringEscapeUtils.unescapeJava(str);
-
我不认为你的意思是
\u00e2\u0080\u0098。我希望您的意思是字节 0xe2、0x80、0x98... 但您的问题还不清楚。您没有显示任何代码并没有帮助 - 我们不知道您是如何从服务器读取数据的。 -
@GareginSargsyan 我尝试了同样的方法,但它不起作用。我将 lang.jar 添加到我的构建路径并尝试了它,但它对我没有帮助。我将来自服务器的响应保存在字符串 (str) 中,然后调用 str = StringEscapeUtils.unescapeJava(str);但它没有解码它。
-
@Jon Skeet 我从服务器收到 JSON 响应,并在日志中打印了相同的内容,它显示 \u00e2\u0080\u0098。
-
@NaveenPrabhu:这对我来说似乎很糟糕。 U+0098 是“字符串的开头”,U+0080 是控制字符。这是你的服务器吗?如果是这样,我会从那里开始并尝试先解决这个问题......
标签: java android unicode unicode-string unicode-escapes