乱码问题记录

1. 登录 linux 服务器,less 查看日志时,显示的中文内容乱码,vi 编辑时,显示的内容又不乱码

export LESSCHARSET=utf-8

试试指定 less 的编码,再使用 less 查看一下

2. shell 连接 mysql ,查询表的记录时,中文出现乱码,显示的是 “???”,在 shell 中 insert 记录时,再查出来也是乱码

# 1. 查看字符集:客户端字符集、服务端字符集、显示查询结果的字符集、database的字符集、connection的字符集
show variables like 'char%';
结果客户端、连接的字符集是 lantin1,database 和服务器的字符集是 utf8,两边不一样,导致出现了中文乱码

# 2. 连接时指定默认的字符集为 utf8,再 select 数据,就显示正常了
mysql -h xx.xx.xx.xx -P 3306 --default-character-set=utf8 -u {username} -p {password}

连接 mysql 时,没有指定字符集,结果查询使用的字符集都是 lantin1,显示中文时出现乱码。
连接时,指定字符集为 utf8 之后,再查数据时,中文就显示正常了,在 shell 中 insert 含有中文的记录时,也可以正常显示了。

客户端字符集、服务端字符集、显示查询结果的字符集、database的字符集、connection的字符集,这些个字符集应该相同才行。

原文地址:https://www.cnblogs.com/kevin-yuan/p/14788361.html