我的Android应用程序允许用户输入以后发布到网站的字符串。我允许用户使用EditText字段输入字符串。我取这个值并将其插入sqlite数据库。 sqlite中的列标识为TEXT。
我的用户抱怨他们输入的unicode字符转换为方形字符而不是输入的字符。
我看到sqlite没有unicode转换表,但我想如果用户输入unicode,我的应用程序应该能够从sqlite中检索它然后显示它。
有什么我想念的吗?关于这个问题的任何指导都会有所帮助。
谢谢!
答案 0 :(得分:2)
我的问题是由于我在创建发布网站的UrlEncodedFormEntity时省略了“UTF-8”参数。 Java和SQLite正确地进行了自动转换。
此代码有效:
HttpResponse response = null;
HttpClient client = null;
try {
final HttpPost post = new HttpPost(url);
final UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairs, "UTF-8");
post.setEntity(entity);
client = new DefaultHttpClient();
response = client.execute(post);
} catch (IOException e) {
}
答案 1 :(得分:0)
有关如何在SQLite中指定编码的信息,请参阅此entry。但是,必须在数据输入之前设置它。
我能想到的另一件事是,很可能你的插入是用文字完成的,而不是绑定。我对么?如果构建插入/更新查询,请注意SQL注入。绑定可能实际上解决了您的Unicode问题。
最后,我建议你从这个list of Unicode characters找到一个样本来测试你的应用程序。