最近做了一个小程序,用到了SQLite,后台用Python写的分析程序,将数据插入(更新)到SQLite数据库中,Delphi的程序周期显示数据库的内容。Delphi访问SQLite采用的Aducom组件。Python插入的数据编码都是采用的UTF-8,而Delphi的DBGrid、cxGrid控件显示的却是乱码,主要是因为Delphi7不支持Unicode造成的,因此要想办法让他支持。
尝试了多种方法,包括使用据说支持Unicode的TMS Unicode Component、SUIPack等,都不好使。最后还是用了简单的方法,在数据集组件的需要显示的字段的OnGetText事件,在事件处理中,对数据进行Unicode到GB的转换。
另外,在用cxGrid进行显示的时候,要根据字段的值进行颜色的设置,这个可以在TableView的Styles的OnGetContentStyle事件中进行处理,如下所示:
其中styleAttention、styleDefault等是放在cxStyleRepository1中的设定好的各种Style。

本文介绍了解决Delphi程序在显示SQLite数据库中的UTF-8编码数据出现乱码的问题,通过自定义Unicode到GB编码的转换方法实现,并提供了一个在cxGrid中根据字段值设置不同颜色样式的示例。
441

被折叠的 条评论
为什么被折叠?



