JSON
データをフォーマットで返すAPIを使用して、Webサイトからデータを取得していました。問題は、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
変換が必要なのはtoü
とo\u0308
toö
とa\u0308
toなどだけであることに注意してくださいä
。
元に戻す方法 -
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();
}