0

我在 Delphi 2009 中使用 Zeos 库时遇到了一些问题。我有一个使用 utf8_bin 编码的 MySQL 数据库,当我尝试从数据库中检索一些字符串并用 DBGrid 显示它时,DBGrid 显示的是单词 (BYTES) 而不是实际的字符串。

我试图更改一些设置,但徒劳无功。经过一番努力,我下载了“DAC for MySQL”的试用版,奇怪的是一切都运行良好。

该程序是一个非常简单的程序,包含一个 Zconnection、一个 Ztable、一个数据源和一个 DBGrid。数字显示正确,只有字符串有这个问题。我尝试了不同的东西,但我不知道我还能做些什么。

MySQL 版本是 5.6.24

ZEOSlib 7.1.4-stable

如果有人有建议,请帮助我!谢谢你的时间(我很抱歉我的英语不好)

4

1 回答 1

0

我在使用 Delphi XE7 的 MySQL 5.6-23 和 ZeosLib 7.1.4-stable 上遇到了同样的问题。

我的 TZConnection 初始化为:

  • ClientCodePage 到 latin1
  • ControlsCodePage 到 cCP_UTF16
  • 属性
    • 自动编码字符串=ON
    • 控制_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 更改了数据库然后一切正常

希望对您有所帮助。

于 2015-09-17T15:01:16.290 回答