存储用户在sqlite中输入了unicode字符串?

时间:2011-10-13 01:57:57

标签: android string sqlite unicode

我的Android应用程序允许用户输入以后发布到网站的字符串。我允许用户使用EditText字段输入字符串。我取这个值并将其插入sqlite数据库。 sqlite中的列标识为TEXT。

我的用户抱怨他们输入的unicode字符转换为方形字符而不是输入的字符。

我看到sqlite没有unicode转换表,但我想如果用户输入unicode,我的应用程序应该能够从sqlite中检索它然后显示它。

有什么我想念的吗?关于这个问题的任何指导都会有所帮助。

谢谢!

2 个答案:

答案 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找到一个样本来测试你的应用程序。