我使用簡單的代碼來檢索JSON對象。 JSON採用Unicode格式,幷包含一些西里爾文字符。Google App Engine的URLConnection不正確地讀取一些西里爾文符號
URL url = new URL("blahblah");
URLConnection con = url.openConnection();
con.setConnectTimeout(10000);
BufferedReader reader = new BufferedReader(new inputStreamReader(con
.getInputStream()));
String json = reader.readLine();
的代碼在 「標準」 Java實現工作完全正常:
Владивосток
然而,當我使用谷歌的App Engine應用程序相同的片段,一些西裏爾字母變成 ?人物:
ладиво??ок
我注意到,從basic Cyrillic character set,只有中間一半(與代碼0421-043F符號)被正確讀取?我不知道該怎麼做。
此行爲是由Google重新實現java.net
類造成的,還是我的疏忽?
我試過顯式地將編碼設置爲StandardCharsets.UTF_8,但是將所有符號轉換爲問號的效果相反。事實證明,JSON是用另一個不明確的編碼創建的,儘管getContentType()返回「charset = utf8」。我已經指定了正確的字符集,現在一切正常。感謝您的幫助! – Doghouse87 2014-11-01 15:12:37