我已将西班牙文本存储到SQlite数据库中,我使用BlackBerry API的row.getString()
方法通过java代码检索相同内容,但我无法从数据库中获取确切的文本,只有重音字符正在以不同方式显示设备(BlackBerry bold 9700)。在我做错的地方,请指出正确的方向。
最诚挚的问候,
维纳亚克
答案 0 :(得分:1)
Charset编码肯定存在问题。这是使用西班牙口音和波浪号的常见问题。 SQLite使用UTF-8,因此您必须检查您的应用程序是否使用UTF-8或其他。
编辑:在BlackBerry API设置默认编码您必须设置系统属性 microedition.encoding 。参考:http://www.blackberry.com/developers/docs/4.5.0api/java/lang/System.html
您可以在命令行设置此属性:java -Dmicroedition.encoding="UTF-8" MyApp
答案 1 :(得分:0)
这看起来像编码问题。加载文本时必须使用与存储时相同的编码。 This blog是unicode问题的一个很好的参考。
答案 2 :(得分:0)
row.getString()不允许任何编码规范 - 因此在从数据库中检索字符串时,操作系统代码应该做正确的事情。我在BlackBerry上使用SQLite的经验是,操作系统构建在5.0.0.4xx附近有一个错误,在检索时不会考虑数据库编码。我必须通过
来解决这个问题new String(row.getString().getBytes(), "UTF-8")
但当然,仅限于有问题的操作系统版本,因为这会破坏row.getString()的任何正确实现。
到目前为止,我遇到此问题的版本是:5.0.0.442和5.0.0.423