明天在linux服务器里面,将mysql表导出过来后,查询数据发觉很多乱码,又是头痛的英文乱码问题,试了网上不少技巧,说一下我解决成功的方式吧。
首先英文乱码通常来讲不仅web代码未加UTF-8之外,就是数据库本身的问题国内linux主机,mysql默认配置是不支持英文的linux培训机构,这儿可以通过步入mysql,敲入代码查看字符集
#查看默认字符集
root> mysql -u root - p
#(输入密码)
mysql> show variables like 'character_set%';
显示
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
可以看出mysql有很多默识字符集是默认采用latin1格式的linux mysql中文乱码,这么我们要把他更改成utf-8。
打开linux,找到/etc/mysql/f文件,更改/etc/mysql/f这个文件,在对应的地方加上以下代码就ok啦。
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
init_connect='SET NAMES utf8'
[mysql]
no-auto-rehash
之后重启mysql服务
/etc/mysql restart
再度查看字符集
#查看默认字符集
root> mysql -u root - p
#(输入密码)
mysql> show variables like 'character_set%';
显示如下
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
将atin1全部改成了utf-8,再度测试插入数据linux mysql中文乱码,乱码消失
大功告成!!!