解决MySQL数据库无法插入中文或插入中文乱码问题

1、Windows平台

1.1、创建数据库时,指定数据库编码为“gbk”;

1.2、建表时指定数据表编码为 “gbk”,或在表建立之后通过"ALTER TABLE 表名 CHARACTER SET gbk;"修改表的编码为gbk;
1.3、在程序的连接字符串中指定编码方式为gbk,如"server=127.0.0.1;User Id=root;Password=csct;Persist Security Info=True;database=csct;charset=gbk";

 

2、Linux平台

2.1、修改mysql的缺省编码
在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件
找到客户端配置[client] 在下面添加
### 默认字符集为utf8
default-character-set=utf8
  
在找到[mysqld] 添加
### 默认字符集为utf8
default-storage-engine=INNODB  
character-set-server=utf8  
collation-server=utf8_general_ci 

##重新启动mysql

2.2、 修改数据库的缺省编码: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表字段的编码:ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

2.3.、终极编码解决方案: 
mysqldump出xxx.sql库; 
vi编辑xxx.sql库; 采用“:g/latin1/s//utf8/g”对所有latin1编码替换成utf8; 
drop xxx后,重新创建xxx库,再ALTER DATBASE,设置缺省编码;
use xxx; source xxx.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值