Messed up character encoding with Android + GAE Cloud Endpoints

感情迁移 提交于 2019-11-28 00:44:58

问题


I made web app using GAE's Cloud Endpoints. App has only backend part. App calls Google Places API and parses JSON responses, creating objects which returns to client. Client is Android app which uses generated client libraries from GAE.

My problem is folowing: app running on local dev server shows on Android correctly UTF-8 formatted strings, but deployed app is showing on Android messed up strings. E.g: Instead of Klinički Centar it shows Klini��ki Centar.

I'm using latest Fedeora GNU/Linux, developing in Eclipse Kepler (newest edition), GAE is ver 1.8.1, Google Plugin for Eclipse ver 3.2.4 (latest).

I have lost incredible amount of time trying to solve this. I assume solution is some config line which forces UTF-8. Just to mention, I have in my appengine-web.xml folowing:

<system-properties>
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
    <property name="file.encoding" value="UTF-8" />
    <property name="DEFAULT_ENCODING" value="UTF-8" />
</system-properties>

Thanks in advance for every suggestion.


回答1:


SOLVED IT!!!!

I think that this is Google's bug evenly as mine. I assumed that response will be encoded in UTF-8, so I just used:

URL url = new URL(PLACE_AC_API + encodedInput + PLACE_AC_API_OPTIONS);
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

With explicitly adding charset argument everything worked out:

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charset.forName("UTF-8")));

But Google definitely need to see why this behaves differently in local and deployed.

All the best to everyone, thanks for interesting and effort!



来源:https://stackoverflow.com/questions/17167475/messed-up-character-encoding-with-android-gae-cloud-endpoints

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!