日期:2014-05-19  浏览次数:20786 次

高分!!!!还是关于mysql乱码的问题!
我现在的情况是:已经在my.ini中设了编码为gb2312,并且创建数据库和表是也指定了gb2312编码格式。这种情况下在command   line   client中插入的中文数据可以正常显示,包括在C#程序的客户端查询到的也显示正常,但是如果从C#客户端程序插入包含中文的记录,不管在哪里查询到的结果都是 "??? "。

怎么解决呢?我看到别的贴上说把Collation设为gb2312_chinese_ci,但是不知道这个Collation是在哪里设的?请指教!
谢谢!!!!

------解决方案--------------------
最终解决方案:
1、选用gb2312编码
2、设置my.ini文件中的默认编码
分别在[mysql]和[mysqld]配置段中增加或修改default_charater_set=gb2312
3、创建数据库时编码选用gb2312
4、创建表时编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)
5、针对具体需要存放中文的字段设定编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)

改进:
如果确实需要存放gbk编码字符,请在连接成功后执行set names gbk
------解决方案--------------------
偶用的全部是utf-8的编码,不管什么语言、符号统统搞定
------解决方案--------------------
set names gb2312
------解决方案--------------------
这个说不好了,在连接字符串里加上CharSet = gb2312试试看
------解决方案--------------------
昨天也是因为mysql乱码问题,弄了半天,不过是java里的,
使用new String(str.getBytes( "ISO8859_1 "), "gB2312 ");出库搞定,反过来入库搞定