现在的位置: 首页 > 综合 > 正文

Android Sqlite3 query的一个问题(多语言模式)

2013年08月26日 ⁄ 综合 ⁄ 共 890字 ⁄ 字号 评论关闭

最近调查关于多语言模式下, 搜索短彩信失败的问题, 设置手机系统语言为English (Spanish, Turkey etc) 搜索成功, 但设置语言为Hindi 和 Arabic时, 则会出错:



E/XXX: got exception: android.database.sqlite.SQLiteException:
no such column: ١٥١:
, while compiling: SELECT pdu._id,thread_id,addr.address,part.text as body,pdu.date FROM pdu,part,addr WHERE ((part.mid=pdu._id) AND (addr.msg_id=pdu._id) AND
(addr.type=١٥١) AND (part.ct='text/plain') GROUP BY thread_id ORDER BY thread_id ASC, date DESC

查询语句如下:

String mmsQuery = String.format(
                        "SELECT %s FROM pdu,part,addr,words WHERE ((part.mid=pdu._id) AND " +
                        "(addr.msg_id=pdu._id) AND " +
                        "(addr.type=%d) AND " +
                        "(part.ct='text/plain'))",
                        mmsProjection,
                        PduHeaders.TO)

在Arabic中 ١٥١ 代表的是数字” 151 “, 
addr.type
取得的是整型值, PduHeaders.TO 的十进制 既是 151.

貌似是把PduHeaders.TO的值用本地的语言来表示了。而对于中文、英文或者西班牙文等都是使用阿拉伯数字来表示, 所以没有问题。

有人遇到过这种问题吗? 如何解决呢?  

抱歉!评论已关闭.