分享

写回答

发帖

[提问] asp.net c#+MySQL 乱码、乱码、乱码

GoDaddy GoDaddy 3483 人阅读 | 5 人回复

发表于 2010-2-1 11:37:14 | 显示全部楼层 |阅读模式

真心希望有经验的同志们指导。我几乎用了所有的方式,均告失败!
首先,Mysql官方的dll由于godaddy安全方面的原因,运行不了,就不所了。故采用.net odbc方式连接,连接是成功的,读写也是正常的。就是中文出现乱码。哎!
知道godaddy的mysql默认采用utf-8格式编码,那就先从utf-8开始。我的asp.net页面编码首先是utf8,连接字符串也进行了设置,如下:driver={mysql odbc 3.51 driver};server=*****;port=3306;uid=*****;pwd=*****;database=*****;stmt=SET NAMES utf8; 当然,不加stmt=SET NAMES utf8也可以,因为.net默认就是utf8。结果写入和读出同样是乱码。

看来得使用我们的GB2312,与是乎,到godaddy上一顿猛修,把数据库的编码、表的编码、字段的编码,全部修改成gb2312。(Mysql默认字符集是utf8这个修改不了,godaddy也不会让咋们随便改是吧),将stmt=SET NAMES utf8替换成stmt=SET NAMES GB2312。结果还是乱码,到web.config中增加<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" />,不管用。在每条语句执行前都加上一条SET Names 'GB2312',照样不灵。

我就纳闷了,通过phpenyWhere可以正常插入中文,.net为啥就不行?还有哪些方法,望高人指点迷津

回答|共 5 个

add.c

发表于 2010-2-1 11:41:28 | 显示全部楼层

中文使用类型修改为nvarchar试试

sypro

发表于 2010-2-1 12:21:56 | 显示全部楼层

原帖由 add.c 于 2010-2-1 11:41 AM 发表
中文使用类型修改为nvarchar试试

谢谢回复,但mysql里好象没有nvarchar类型

add.c

发表于 2010-2-1 13:19:17 | 显示全部楼层

统一下编码格式
要么全用utf-8的

freesms

发表于 2010-11-6 21:39:03 | 显示全部楼层

同求问题答案
通过PHPMYADMIN和CMS后台写入汉字显示正常,可是通过自编的一个ASP文件写入汉字,就全是问号了。
RAKSmart

ming830924

发表于 2010-11-6 22:10:51 | 显示全部楼层

1 特殊字符转换了吗?= =?
2 gb2312靠不住,还是UTF8好点
3 检查数据库内写入的是不是乱码,是的话,更换类型
4 检查代码中的编码是否一致
5 实在不行,赶紧退费吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则