C#.net下连接mysql,输入中文后出现????,急~~ config文件中设置 requestEncoding="gb2312" responseEncoding="gb2312" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 居然还是没用,我的代码 string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=seechn;" + "UID=root;" + "PASSWORD=zlk;" + "OPTION=3"; OdbcConnection MyConnection = new OdbcConnection(MyConString); string str = "select * from ClientInfo"; OdbcCommand MyCommand = new OdbcCommand(str, MyConnection); MyConnection.Open(); OdbcDataReader myreader = MyCommand.ExecuteReader(); DataTable mytable = new DataTable(); mytable.Load(myreader); GridView1.DataSource = mytable; GridView1.DataBind(); 我用mysql的dll也是碰到这个问题,获取的时候中文是乱码 也有可能是服务器那边的设置错误。参考:http://0123.blog.163.com/blog/static/47883120070228589235/ 目前情况如下: 1、使用不同的管理工具,中文内容显示有乱码有正常(用哪个写进去的哪个就正常) 2、在SHELL界面中,通过set names ''可以正常select/update/insert中文内容 3、在C#程序中select/update/insert就会出乱码 4、尝试过将数据库/表/字段均设置为utf8 5、尝试过在my.ini文件中配置 default-character-set = gbk --------------------------------------------------------------- http://xue3.bokee.com/viewdiary.12320231.html 如果所有设置都已经改为GB2312的情况下,还会出现乱码问题,可能你的数据库是经过导入的.那么可以尝试下面的办法: 在你的数据库链接的php页面下找到类似的这样一段: $this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword); 在它的前面先执行一次connection的字符集更改: $this->query("SET NAMES 'gb2312'"); 如果问题解决了,则可以肯定是你的数据库经过导入出现了问题. --------------------------------------------------------------- 由程序insert/update的纪录在控制台select后可以正常显示吗? 如果同样有问题,可能你前端程序用的是另一种编码如utf8,后台数据库用gbk 在和数据库交互时,c#要做编码转换。 --------------------------------------------------------------- 问题已经解决,头疼了几天... 详细说明如下: 误区: 近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的。 A、大家跟风都想使用utf8,但UTF8在处理中文时并非想像中的理想,Select/Update/Insert均出现乱码; B、gbk字符集远大于gb2312,是第二首选字符集,但在Server/Database设定为GBK字符集后,在程序中连接都不成功(not support),更不用说操作; 最终解决方案: 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 建议使用Navicat MySQL工具进行管理,在gb2312的情况下,此工具显示非常正常。 我准备做C# 联接mysql 前几天找了这个资料备用(忘记来源了) 希望对你有所帮助 数据库的库,表,字段都要设置成"GB2312"链接字符串也要加charsct='gb2312' 求一正则 C# winform 本地资源与项目资源有什么区别? [在线]一个由几个英文单词组成的字符串,单词之间的空格可能不止一个!! combobox 用System.Diagnostics.Process调用WINRAR解压缩文件时如何取得返回值? 提问什么叫共享程序集? 各位杂样 自己做一个类似与 Doc 的copy功能 求助:如何对List<String> [ ] str这样的数字做排列组合 【急急急!求助!!】sql server 数据库连接(通过域名) 组件类与普通类有什么区别! 那有下载VisualStudio2005中文版请告我成吗 如何才能让字符倒须输出呢?
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
"SERVER=localhost;" +
"DATABASE=seechn;" +
"UID=root;" +
"PASSWORD=zlk;" +
"OPTION=3"; OdbcConnection MyConnection = new OdbcConnection(MyConString);
string str = "select * from ClientInfo";
OdbcCommand MyCommand = new OdbcCommand(str, MyConnection);
MyConnection.Open();
OdbcDataReader myreader = MyCommand.ExecuteReader();
DataTable mytable = new DataTable();
mytable.Load(myreader);
GridView1.DataSource = mytable;
GridView1.DataBind();
1、使用不同的管理工具,中文内容显示有乱码有正常(用哪个写进去的哪个就正常)
2、在SHELL界面中,通过set names ''可以正常select/update/insert中文内容
3、在C#程序中select/update/insert就会出乱码
4、尝试过将数据库/表/字段均设置为utf8
5、尝试过在my.ini文件中配置 default-character-set = gbk --------------------------------------------------------------- http://xue3.bokee.com/viewdiary.12320231.html 如果所有设置都已经改为GB2312的情况下,还会出现乱码问题,可能你的数据库是经过导入的.那么可以尝试下面的办法:
在你的数据库链接的php页面下找到类似的这样一段:
$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
在它的前面先执行一次connection的字符集更改:
$this->query("SET NAMES 'gb2312'");
如果问题解决了,则可以肯定是你的数据库经过导入出现了问题.
--------------------------------------------------------------- 由程序insert/update的纪录在控制台select后可以正常显示吗?
如果同样有问题,可能你前端程序用的是另一种编码如utf8,后台数据库用gbk
在和数据库交互时,c#要做编码转换。
--------------------------------------------------------------- 问题已经解决,头疼了几天...
详细说明如下: 误区:
近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的。
A、大家跟风都想使用utf8,但UTF8在处理中文时并非想像中的理想,Select/Update/Insert均出现乱码;
B、gbk字符集远大于gb2312,是第二首选字符集,但在Server/Database设定为GBK字符集后,在程序中连接都不成功(not support),更不用说操作; 最终解决方案:
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 建议使用Navicat MySQL工具进行管理,在gb2312的情况下,此工具显示非常正常。
链接字符串也要加charsct='gb2312'