mysql 空格乱码_MySQL 中文乱码(全)

避免中文乱码的完整流程:

# 建库时,指定字符集和排序规则

CREATE DATABASE `company` CHARACTER SET utf8 COLLATE utf8_general_ci;

# 建表时,指定字符集

CREATE TABLE `employee` (

`id` bigint(20) NOT NULL auto_increment,

`name` varchar(20) NOT NULL,

`address` varchar(100) NOT NULL,

`entrytime` datetime NOT NULL,

PRIMARY KEY  (`id`),

) ENGINE=MyISAM AUTO_INCREMENT=100000051 DEFAULT CHARSET=utf8;

# 修改配置文件,增加如下配置项

# Linux下,配置文件为/etc/my.cnf

# Windows下,配置文件为C:\Program Files\MySQL\my.ini

[mysqld]

default-character-set = utf8

[client]

default-character-set = utf8

# 重启mysql服务

# Linux下

service mysqld restart

# Windows下(假如对应的服务名为mysql5)

net stop mysql5

net start mysql5

如果仍然没有解决乱码问题,先来科普一下:

# 查看MySQL的编码:show variables like "%char%";

# 各项的含义:

character_set_server:默认的内部操作字符集

character_set_client:来自客户端的数据使用的字符集

character_set_connection:连接层字符集

character_set_results:发往客户端的结果的字符集

character_set_database:当前选中数据库的默认字符集

character_set_system:系统元数据(字段名等)字符集

# 再看看这个图:

c4a680c7758893f664686cf3806f0767.png

# 分析问题所在,如果上述各项都是utf8,请排查客户端程序(如PHP)。

下面以PHP为例:

# 创建数据库连接时,就设置一下,见截图:

e3f8ff67e565d743f97a76339939dfc4.png

# 因为使用了json_encode( )方法,所以要在其前后做些擦屁股的工作:

# 擦在前面,见截图:

adf649ee25a23d4e8274557fd83b4601.png

# 擦在后面,见截图:

39e7892cb800383c086d2c7cf5555333.png

参考:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值