Delphi中让sqlite显示Unicode计算机等级考试
文章作者 100test 发表时间 2010:01:01 09:27:58
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
如何应付二级考试中的公共基础知识
全国计算机等级考试上机考试应试技巧
最近做了一个小程序,用到了SQLite,后台用Python写的分析程序,将数据插入(更新)到SQLite数据库中,Delphi的程序周期显示数据库的内容。Delphi访问SQLite采用的Aducom组件。Python插入的数据编码都是采用的UTF-8,而Delphi的DBGrid、 cxGrid控件显示的却是乱码,主要是因为Delphi7不支持Unicode造成的,因此要想办法让他支持。
尝试了多种方法,包括使用据说支持Unicode的TMS Unicode Component、SUIPack等,都不好使。最后还是用了简单的方法,在数据集组件的需要显示的字段的OnGetText事件,在事件处理中,对数据进行Unicode到GB的转换。
view plaincopy to clipboardprint?procedure unicode2gb(const unicodestr:string. var GbStr:String). var SourceLength:integer. DoneLength:integer. AscNo:integer. Byte1,Byte2,Byte3:integer. begin GbStr:=’’. if Trim(unicodestr)=’’ then exit. SourceLength:=Length(UnicodeStr). DoneLength:=1. repeat AscNo:=ord(UnicodeStr[DoneLength]). case (AscNo and $E0) of $E0:begin Byte1:=(AscNo and $0f) shl 12. Inc(DoneLength). if DoneLength