2010-09-29 70 views
0

我已經將西班牙語文本存儲到SQlite數據庫中,並且我通過使用BlackBerry API的row.getString()方法的java代碼檢索相同內容,但是我無法從數據庫中獲取確切的文本,只有重音字符在設備中以不同的方式顯示(BlackBerry Bold 9700)。如果我做錯了,請指出我正確的方向。黑莓中SQlite的西班牙語文本檢索不正確

最好的問候,

維納亞克

+0

請您正確複製粘貼下一次格式化。 – 2010-09-29 09:00:55

回答

0

row.getString()不允許編碼的任何規範 - 所以OS的代碼應該做的正確的事情檢索字符串時來自數據庫。我在BlackBerry上使用SQLite的經驗是,操作系統在5.0.0.4xx版本左右有一個錯誤,那就是數據庫編碼在檢索時不受重視。我已經做

new String(row.getString().getBytes(), "UTF-8") 

當然但是,只有在有問題的OS版本,以解決這個問題,因爲這將打破任何正確執行row.getString的()。

這個問題是我到目前爲止所遇到的版本是:5.0.0.442以及5.0.0.423

0

這看起來與編碼的問題。加載文本時必須使用與存儲文本時相同的編碼。對於unicode問題,This blog是一個很好的參考。

1

這肯定是Charset編碼的一個問題。這是使用西班牙語口音和波浪線的常見問題。 SQLite使用UTF-8,所以你必須檢查你的應用程序是否使用UTF-8或其他。

編輯:設置爲黑莓API你必須設置系統屬性microedition.encoding默認編碼。參考:http://www.blackberry.com/developers/docs/4.5.0api/java/lang/System.html

你可以在命令行設置該屬性:java -Dmicroedition.encoding="UTF-8" MyApp

+0

根據[this](http://www.sqlite.org/version3.html),它也支持UTF-16。 – 2010-09-29 09:06:22

+0

是的,我確定我正在爲SQlite使用UTF-8編碼,但是如何確保我的應用程序使用相同的編碼(即UTF-8)。 – 2010-09-29 09:07:16

+0

是的。從3.0版開始。感謝您的意見。 – 2010-09-29 09:08:03

相關問題