2016-11-13 64 views
0

在我的Android應用程序中,Json供稿可能具有法語,德語和西班牙語特殊字符,如「馬德里競技對馬拉加」。 Feed在瀏覽器中看到它們時正常工作,但在插入相同數據時,sqllite會顯示未知字符。在其他帖子的專家對StackOverFlow的建議中,我在HttpConnections和InputStream中進行了這些更改以支持UTF-8,但它不起作用。我被告知sqllite支持UTF-8,不需要更改配置。我在做什麼錯?請幫忙。謝謝。Json供稿中的特殊字符在sqllite數據庫中插入爲未知字符

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

您解碼爲UTF-8,它僅支持ASCII字符。

如果遇到非ASCII字符(á,ó,ú,í,é),則會出現奇怪的行爲。

另外,請確保您要保存到數據庫中的列支持Unicode - 在MsSql中,它需要是一個nvarchar字段。不知道SQLite等價物是什麼...