在我的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();
答案 0 :(得分:0)
您将解码为UTF-8,仅支持ASCII字符。
如果遇到非ascii字符(á,ó,ú,í,é),你会得到奇怪的行为。
另外,请确保您在数据库中保存的列支持Unicode - 在MsSql中,它必须是nvarchar字段。不确定SQLite等价物是什么......