é=é:需要按原样显示

时间:2013-04-19 11:27:45

标签: android utf-8 special-characters

我从文本格式的服务器得到一些响应,它工作正常但在某些情况下我没有得到字符串。

说明: - 我的数据库有一个像cupcaké这样的名字,但是当我解析数据时,它会显示给我cupcaké。我希望显示为cupcaké

我在URL.Encode的帮助下尝试了URL.Decodeutf-8功能,但没有一个有用。我需要通用的解决方案,这个解决方案不仅适用于所有特殊性质,而且还适 这是我的jsonparser类,我可以在这个文件中进行更改吗?还是某个地方?

HttpURLConnection conn = null;
    StringBuilder jsonResults = new StringBuilder();
    try {
        URL url = new URL(str);
        conn = (HttpURLConnection) url.openConnection();
        InputStreamReader in = new InputStreamReader(conn.getInputStream());

        // Load the results into a StringBuilder
        int read;
        char[] buff = new char[1024];
        while ((read = in.read(buff)) != -1) {
            jsonResults.append(buff, 0, read);
        }
        json = jsonResults.toString();         
    } catch (MalformedURLException e) {
        Log.e(LOG_TAG, "Error processing Places API URL", e);

我如何在屏幕上显示它? 请给我任何参考或提示。

3 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我找到了一个很好的答案。这些是html实体,可以使用以下代码显示:

Html.fromHtml(Html.fromHtml((String) yourstring).toString());  

现在每个html实体都转换为实际的字符串。您可以找到更多详细信息here

答案 1 :(得分:0)

答案 2 :(得分:0)

请注意,当您在问题中输入cupcaké时(在我编辑之前),浏览器会将其显示为cupcaké(此处再次检查答案来源:cupcaké)。这些是“html实体”,您可以询问您喜欢的编程语言,将它们解码为相应的字符。在php中,您使用html_entity_decode()