Json Feed中的特殊字符作为未知字符插入sqllite数据库

时间:2016-11-13 17:57:12

标签: android json utf-8 inputstream httpconnection

在我的Android应用程序中,Json feed可能具有法语,德语和西班牙语的特殊字符,如“马德里竞技对马拉加”。当我在浏览器中看到Feed时,Feed工作正常,但是当插入相同数据时,sqllite显示未知字符。关于StackOverFlow专家在其他帖子中提出的建议,我在HttpConnections和InputStream中进行了这些更改以支持UTF-8,但它不起作用。有人告诉我sqllite自己支持UTF-8,不需要更改配置。我在做什么?请帮忙。感谢。

    InputStream isC = null;
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestProperty("Accept-Charset", "UTF-8");
        conn.setConnectTimeout(10000);
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        conn.setRequestProperty("Content-type", "application/json;charset=UTF-8");
        conn.connect();
        int response = conn.getResponseCode();
        isC = conn.getInputStream();
        JsonReader jsonReader = new JsonReader(new InputStreamReader(isC, "UTF-8"));
        jsonReader.setLenient(true);
        jsonReader.beginObject();

1 个答案:

答案 0 :(得分:0)

您将解码为UTF-8,仅支持ASCII字符。

如果遇到非ascii字符(á,ó,ú,í,é),你会得到奇怪的行为。

另外,请确保您在数据库中保存的列支持Unicode - 在MsSql中,它必须是nvarchar字段。不确定SQLite等价物是什么......