我使用UTF-8正确编码了我的JSON响应,并尝试将响应字符串保存到我的SQLite表中。
然后我注意到它没有妥善保存并且有?????不是英语的人物。
我尝试在保存前修改编码
@Override
public void onResponse(String response)
{
SavedResponse mysavedresponse = new SavedResponse();
JSONObject j = null;
int resp_count = (int) db.getResponsesCount();
try {
//String MyResponse = fixEncodingUnicode(response);
//CHECK IF IT IS NEW RESPONSE
if(resp_count>0)
{
mysavedresponse = db.getMySavedResponse();
response = mysavedresponse.getSavedresponse();
}else
{
**db.AddResponse(fixEncodingUnicode(response));**
db.close();
}
j = new JSONObject(response);
}catch (JSONException e) {
e.printStackTrace();
}
此外,如果我添加db.deleteresponses initialy 然后它的工作如果我注释掉db.deleteresponses我再次得到??????。
为什么我的响应被正确编码我可以在调试时看到它,当它保存在sqlite表中时会搞砸了?
谢谢
答案 0 :(得分:-1)
您的JSON对象是否需要与SQLite中的JSON完全一样存储?对base64进行编码会更容易,因为你不必担心字符集冲突,然后是用ASCII编码的所有字符。