【发布时间】:2013-02-12 14:25:10
【问题描述】:
我正在使用其 API 从网站获取数据,该 API 以 JSON 格式返回数据。
问题在于JSON 中有一些变音符号。它将返回其UNICODE,例如Münich 将是 Mu\u0308nich。
当我将此JSON 字符串传递给org.codehaus.jettison.json.JSONObject 的构造函数时,Mu\u0308nich 被转换为Munich (n has an umlaut)。错了。
我很晚才意识到这一点(在获取整个数据之后)。现在我使用以下方法将其转换回Unicode 形式,即我将Munich (n has an umlaut) 传递给该方法并返回Mu\u0308nich。
我想以某种方式将此Mu\u0308nich 转换为Münich。有任何想法吗?
请注意,只有u\u0308 到ü 和o\u0308 到ö 和a\u0308 到ä 等需要转换。
用于转换回来的方法 -
public static String escapeUnicode(String input) {
StringBuilder b = new StringBuilder(input.length());
Formatter f = new Formatter(b);
for (char c : input.toCharArray()) {
if (c < 128) {
b.append(c);
} else {
f.format("\\u%04x", (int) c);
}
}
return b.toString();
}
【问题讨论】:
-
chen如何改成nich,在慕尼黑和慕辰? -
@nhahtdh 错字。对不起。已更正。
-
我认为元音变音取决于程序如何显示它(元音变音是一个单独的字符)。某些程序将无法正确显示字符。
-
@nhahtdh - 问题是在某些情况下我已经有了“正确的”,即慕尼黑。现在,当我尝试将它与这个 n umlaut 数据匹配时。我不工作。