asp.netx写入Mysql乱码的处理

在使用Mysql+asp.net开发时,遇到写入数据库的中文乱码问题,和让人头疼,结合本人遇到的情况参阅网上资料,解决方法不外乎以下三种

我的数据库采用的是charset=gb2312编码,asp.net为utf-8 ,js全部采用utf—8编码

 

方法一:检查数据库的编码

检查数据库的默认字符集、表的字符集、字段的字符集是否和写入字符的编码一致


方法二:在数据库联接字符串上定义编码方式

 

Mysql的连接字符串中制定字符集charset=gb2312

 

如: "server=localhost;user=***;database=schoolnet;port=3306;password=***;charset=gb2312"

 

方法三:如果还是不行可以试一下

执行数据库命令:

db.ExecuteNonQuery("set names gb2312")


通过如下指令修改数据库的字符集 
alter database da_name default character set 'charset'.
客户端以 gbk格式发送 ,可以采用下述配置:
SET character_set_client='gbk'

 

原因如下:
SET character_set_connection='gbk'
SET character_set_results='gbk'
这个配置就等价于 SET NAMES 'gbk'。
现在对刚才创建的数据库操作
mysql> use test;
Database changed
mysql> insert into mysqlcode values(null,'php爱好者');
ERROR 1406 (22001): Data too long for column 'content' at row 1
没有指定字符集为gbk,插入时出错
mysql> set names 'gbk';
Query OK, 0 rows affected (0.02 sec)
指定字符集为 gbk
mysql> insert into mysqlcode values(null,'php爱好者');
Query OK, 1 row affected (0.00 sec)
插入成功
mysql> select * from mysqlcode;
+----+-----------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值