1. 程式人生 > >Delphi中讓sqlite顯示Unicode

Delphi中讓sqlite顯示Unicode

最近做了一個小程式,用到了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。