准备使用MySQL写个小程序,遇到了一些中文字符显示乱码的问题。经过试验,解决方式如下:
1、配置服务器端,修改my.ini文件,使用中文字符集存储记录,同时用中文排序比较方式。
[mysqld]
# set character set
default-character-set=gbk
# set character collation
default-collation=gbk_chinese_ci
2. 如果要在中文环境的服务器端使用mysql命令行,改变my.ini文件中mysql的默认字符集。
[mysql]
# set character set
default-character-set=gbk
3. 在客户端程序中,设置中文字符集。以Delphi + ADO + MyODBC为例:
procedure InitConn;var nRows: Integer;begin 。。。 //改变当前MySQL连接session的字符集 ADOConnection1.Execute('set character_set_client=''gbk''', nRows); ADOConnection1.Execute('set character_set_connection=''gbk''', nRows); ADOConnection1.Execute('set character_set_results=''gbk''', nRows); 。。。end;