mysql 中文字符乱码_MySQL中文字符乱码问题

> Coding > MySQL中文字符乱码问题

很多朋友可能都遇到了这一问题,就是向数据库的表格中插入中文显示的却是乱码,甚至在命令行中插入中文时提示内容类似下面的提示:

Rows matched: 1  Changed: 0  Warnings: 1

也就是实际执行没有成功,这时极有可能是字符集的问题(可通过show create table table_name来进行查看),这里综合网上内容记述一些有关数据库字符集编码的问题:

命令行中查看编码字符集:

show variables like ‘collation_%’;

mysql-chinese-character-set

show variables like ‘character_set_%’;

mysql-chinese-character-set

修改MySQL默认字符集及转换字符集(MySQL 5.X)

1. 修改 MySQL 数据库默认字符集(MySQL Database Default Character Set)

如:alter database db_name default character set = utf8;

2. 修改 MySQL 数据表默认字符集(MySQL Table Default Character Set)

如:alter table table_name default character set = utf8;

注意:这里修改 MySQL 的默认字符集,不管是在数据库级别,还是数据表级别,对已经存储的字符数据无任何改变。只是对于新增的表或列开始使用新的字符集。

3. 转换 MySQL 数据表字符集(MySQL Table Character Set)

如MySQL 中有一个数据表 test_table,以前该表字符列数据都是以 latin1 编码格式存放的,现在想转换为 utf8 编码格式存放。可使用 MySQL 转换字符集命令:convert to character set

alter table test_table convert to character set utf8;

提示:convert to 也会把数据表 test_tabl 的默认字符集从 latin1 更改为 utf8。

注意:实际上Alan通过查看乱码和无法插入的问题就是由于默认字符集为latin1,通过上述修改您可能发现还是有同样的问题,这时由于执行的修改需要关闭命令行窗口在新开启的窗口中才会生效。

4. 转换 MySQL 数据表中某个列的字符集(MySQL Column Character Set)

alter table table_name modify col_name varchar(50) character set utf8;

这个语句把单独一个列 col_name 的字符集转换为utf8。这在用法在实际中比较少见,因为大多数情况下,都是改变整个表的字符集。

MySQL字符集修改命令

1.修改服务器级

a. 临时更改: mysql>SET GLOBAL character_set_server=utf8;

b. 永久更改:shell>vi /etc/my.cnf[mysqld]default-character-set=utf8

2.修改数据库级

a. 临时更改: mysql>SET GLOBAL character_set_database=utf8;

b. 永久更改:改了服务器级就可以了

3.修改表级

mysql>Alter TABLE table_name DEFAULT CHARSET utf8; 更改了后永久生效

4.修改列级修改示例:

mysql>Alter TABLE products CHANGE products_model products_model VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更 改了后永久生效

5.更改连接字符集

a. 临时更改:mysql> SET NAMES utf8;

b.永久更改: shell>vi /etc/my.cnf在[client]中增加:default-character-set=utf8

此外,在php中操作MySQL,也可以通过mysql_query(‘set names ***’)的指令有明确所使用的字符集,在Windows命令行中可直接通过charset 或SET NAMES的指令有设定字符集。

2019030904445311.jpg

9df80f9c45155ef265fc5bfb2642e191.png

发表我的评论 取消评论

Hi,您需要填写昵称和邮箱! 昵称昵称 (必填)

邮箱邮箱 (必填)

网址网址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值