相关编码信息如下:
"character_set_client latin1"
"character_set_connection latin1"
"character_set_database latin1"
"character_set_results latin1"
"character_set_server latin1"
"character_set_system utf8"
"character_sets_dir C:\\Program Files\\MySQL\\MySQL Server 4.1\\share\\charsets/"使用SQLyog工具查看表中的记录,中文可以正确显示,但是通过C#代码查询到前台,中文就变成了乱码.另外,我知道使用gb2312编码可以解决乱码问题.现在的问题是:在保持latin1编码不变的情况下,如何让前台查询出来的结果可以正确显示中文?这个可以做到吗?如何做?请各位帮忙看看.
"character_set_client latin1"
"character_set_connection latin1"
"character_set_database latin1"
"character_set_results latin1"
"character_set_server latin1"
"character_set_system utf8"
"character_sets_dir C:\\Program Files\\MySQL\\MySQL Server 4.1\\share\\charsets/"使用SQLyog工具查看表中的记录,中文可以正确显示,但是通过C#代码查询到前台,中文就变成了乱码.另外,我知道使用gb2312编码可以解决乱码问题.现在的问题是:在保持latin1编码不变的情况下,如何让前台查询出来的结果可以正确显示中文?这个可以做到吗?如何做?请各位帮忙看看.
MySQL 中文显示乱码
Query OK, 0 rows affected (0.00 sec)mysql> show variables like "%char%";
+--------------------------+-------------------------
-----+
| Variable_name | Value
|
+--------------------------+-------------------------
-----+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
这个clause是设置客户端编码的包括链接编码 客户端编码 和结果集编码
set names ascii, 客户端和服务端的字符集间将不进行任何转换。
要确认你的客户端能正确显示字符,首先你要确认你的服务端LATIN1字符实际存的是什么字符。
如果是GBK,你的客户端也是GBK,那能正确显示。
此方法能够成功的根本原因是gbk/gb2312和latin1都是ansi c字符串,可以当成ascii码字符串来处理。