2015-09-16 60 views
0

我在Delphi 2009的Zeos庫中遇到了一些麻煩。 我有一個使用utf8_bin編碼的MySQL數據庫,當我試圖從 中檢索一些字符串DB並用DBGrid顯示它 DBGrid正在顯示單詞(BYTES)而不是實際的字符串。Delphi 2009 + Zeos + MySQL DBGrid顯示字符串爲(BYTES)

我試圖改變一些設置,但徒勞無功。經過很多努力, 我下載了「用於MySQL的DAC」的試用版,奇怪的是,一切都很完美。

該程序是一個非常簡單的程序,帶有Zconnection,Ztable, 數據源和DBGrid。數字顯示正確,只有字符串有這個問題。我嘗試了不同的事情,但我不知道 我能做些什麼。

MySQL的版本是5.6.24

ZEOSlib 7.1.4穩定

如果任何人有一個建議,請幫助我! 謝謝你的時間(對不起我的英語不好)

回答

0

我已經有與MySQL XE7 MySQL 5.6-23和ZeosLib 7.1.4穩定相同的問題。

我TZConnection與初始化:

  • ClientCodePage爲latin1
  • ControlsCodePage到cCP_UTF16
  • 屬性以
    • AutoEncodeStrings = ON
    • controls_cp = CP_UTF16
    • 代碼頁= LATIN1
  • 協議的mysqld-5

我的數據庫用默認字符集和整理(UTF8/utf8_bin)創建,並且我有比你的同樣的問題,即使有LATIN1/latin1_bin

然後我已經改變了由CREATE DATABASE數據庫IF NOT EXISTS MyDbName CHARACTER SET latin1的COLLATE latin1_general_cs,然後一切工作正常

希望它會幫助你。

+0

非常感謝您的迴應,這個解決方案中的問題是我必須將排序規則從utf8_bin更改爲latin1_general_cs,我寧願避免這種情況並堅持使用utf8。 – zaos