1,示例

图中名为一个.sql文件的一段内容,是一个数据库文件。其在windows中打开显示正常,在Linux中,中文部分显示为乱码。

注意:这个与数据库乱码的情况不同,属于文件内容的乱码。

2,分析

Linux系统与windows系统在编码上有显著的差别。Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8。这两个系统就好比是中国和日本。文件就好比是一个人,如果要在另外的国家居住就要办理居住许可证,使用他国的证件(编码和字符集),否则是不被允许的黑户。因此,解决中文乱码问题要从编码和字符集着手。

文件出现编码错误的原因:
当前系统的字符集有问题
某个文件的编码有问题

3,解决方案

3.1方案一:从系统的字符集处理

当系统中多个文件的内容出现乱码问题,或者中文文件名显示乱码时,就先从系统的字符集处理。

常用字符集:

中文
LANG=“zh_CN.UTF-8”

英文
LANG=“en_US.UTF-8”

LANG=C

1,查看字符集

<1>查看当前系统默认采用的字符集

locale

<2>查看系统当前字符集

echo $LANG

<3>查看系统是否安装中文字符集

出现zh开头的,即为安装了中文字符集
如未安装,需执行: yum -y groupinstall chinese-support

locale -a |grep zh

2,修改系统字符集

<1>修改系统字符集为中文

如果前面查看到的系统当前的字符集是英文,通常修改系统字符集为中文即可成功。

临时修改(当前终端生效):
export LANG="zh_CN.UTF-8"永久修改:
echo "export LANG="zh_CN.UTF-8"  >> /etc/proflile
source /etc/profile

<2>查看

echo $LANG

3.2 解决方法二:从文件的编码处理

当系统的字符集为中文,文件的中文部分仍然显示乱码,就从文件的编码格式处理。

1,查看文件编码

<1>查看文件编码(vim方式)

用vim打开文件,输入:set fileencoding

fileencoding后即为该文件编码格式

<2>查看文件编码(file方式)

file  文件名
或
file --mime-encoding 文件名

2,修改文件的字符集

<1>文件的编码转换(vim方式)

这个方法,仅在vim查看时进行编码转换,文件实际上本身编码并未转换,仅仅只是可看到。

临时转换:
用vim打开文件,输入:set fileencoding=utf-8永久转换(先确认vimrc位置):
echo "set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936" >> /etc/vimrc
或
echo "set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936" >> ~/.vimrcvim会依照fileencodings提供的编码列表,查找合适的编码,如果没有找到就用latin-1(ASCII)编码打开.

<2>文件的编码转换(iconv方式)

该命令可进行文件内容的编码转换,并输出到其他位置(文件)

命令参数
-f encoding   把字符由原来的编码开始转换
-t encoding   把字符转换为新编码
-l            列出支持的编码字符(可选)
-o file       指定输出文件(可选)
-c            忽略输出的非法字符(可选)
-s            禁止输出警告信息(可选)
--verbose     显示进度(可选)

{1}.列出当前支持的字符编码

iconv -l

{2}.编码转换

基本格式:
iconv  -f 原编码  -t 新编码   原文件 -o 新文件
或
iconv  -f 原编码  -t 新编码   原文件  > 新文件示例:将UTF-8编码的wx.txt文件转换为GB2312编码的test01.txt
iconv -f UTF-8 -t GB2312 wx.txt -o test01.txt

<3>文件名编码转换(convmv方式)

该命令可转换文件名的编码(只是文件名编码的转换,文件内容不会发生变化)
安装命令:yum -y install convmv

命令参数
-f           后面是原来的编码方式
-t           后面是要转换为的编码方式
-r           递归处理子文件夹
-i           询问每一个转换
--notest     真实的执行,在默认情况下只会测试(只能以root权限执行)

{1}编码转换

基本格式:
convmv -f 原编码 -t 新编码 --notest(可选)  文件名
或
convmv -f 原编码 -t 新编码 --notest(可选)   -r 目录名示例:将read目录下的UTF-8编码的文件名转换为GBK编码
convmv -f UTF-8 -t GBK --notest   -r  read/

<4>文件的编码转换(enca方式)

该工具能自动识别文件编码,且支持批量转换
安装命令:yum -y install enca

{1}.编码转换

基本格式    
enca -L 原编码 -x 新编码  文件名    
或
enca -L 原编码 -x 新编码  目录名示例1:把当前目录下的所有文件都转成utf-8    enca -L zh_CN -x utf-8 *     示例2:检查文件的编码 enca -L zh_CN test.txt示例3:将test.txt文件编码转换为"UTF-8"编码  enca -L zh_CN -x UTF-8 test.txt示例4:将test.txt文件编码转换为"UTF-8"编码,并输入test2.txt中enca -L zh_CN -x UTF-8  < test.txt  > test2.txt

Linux中文显示乱码问题解决方法(编码查看及转换)相关推荐

  1. Linux中文显示乱码问题解决方法 和 将英文提示换成中文提示

    1.查看当前使用的语言: echo $LANG修改之前:en_US.UTF-8 英文修改之后:zh_CN.UTF-8 中文 2.查看当前系统默认采用的字符集 locale修改之前: [root@roo ...

  2. html页面中文显示乱码问题解决方法

    html页面中出现中文时可能在前端显示为乱码. 问题原因: 页面的显示编码和存储编码不一致 解决方案:修改显示编码和存储编码为一致. 步骤: 修改页面的显示编码 修改页面的存储编码 修改页面的显示编码 ...

  3. maya mel插件中文显示乱码问题解决方法

    环境:win10 中文, maya mel 插件调用txt文本,显示中文文字时出现了乱码,后来发现,时创建文本时,自动用的utf-8, 后来改为随顺 系统默认Ansi 后,再创建的txt文本显示正常了 ...

  4. QT的中文显示乱码问题解决

    QT的中文显示乱码问题解决 QT的中文显示乱码问题解决: 1.查看源文件的编码格式,有必要的话转换源文件的编码格式再重新编译运行尝试汉字能否正常显示. 2.在代码里面解决: 3.用法: QT的中文显示 ...

  5. 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置

              Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...

  6. 取出Cookie中的中文显示乱码解决方法。经验证第三种方法有效。

    取出Cookie中的中文显示乱码解决方法 HttpUtility.UrlEncode(Response.Cookies[ "newcookie "].Values);  HttpU ...

  7. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 参考文章: (1)Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 (2)https://www.cnblog ...

  8. .sql导入中文显示乱码解决方法

    .sql导入中文显示乱码解决方法 参考文章: (1).sql导入中文显示乱码解决方法 (2)https://www.cnblogs.com/fnote/p/8051682.html 备忘一下.

  9. Linux麒麟系统中文乱码,ubuntu麒麟系统tomcat中文乱码怎么办?ubuntu tomcat中文显示乱码解决方法...

    在ubuntu麒麟系统中安装tomcat后,用户在搭建Demo程序的过程中有遇到tomcat中文显示乱码的情况,一般乱码都是因为编码问题导致的,而如果大家的编码设置是正确的话就是下面的原因导致的,遇到 ...

  10. Linux中文显示乱码?如何设置centos显示中文

    怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导 ...

最新文章

  1. 原生javascript实现放大镜效果
  2. spring-aop入门
  3. 第十七届智能车竞赛英飞凌专题培训 ——英飞凌无刷电机驱动专题
  4. matlab regstats()
  5. 切换运行时用户以及用户组
  6. jQueryHTMLCSS3实现垂直手风琴折叠菜单方法讲解
  7. Exploiting “BadIRET” vulnerability (CVE-2014-9322, Linux kernel privilege escalation)
  8. docker always_Ubuntu+Docker+STF环境搭建
  9. oracle ocm 考题,2012年10 月oracle 10g ocm 认证 考试 真题 题库
  10. 读后感-论文Patch-based Convolutional Neural Network for Whole Slide Tissue Image Classification
  11. mysql锁的应用场景_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
  12. 拖延心理学读后感ppt
  13. python官网下载-Python3.7.0 官方版官方版下载
  14. hive获取数据中位数函数
  15. 美林投资时钟策略如何运用?
  16. PySpark | Spark3新特性 | Spark核心概念
  17. Stata:边际效应分析
  18. 嵌入式关键字英文对照
  19. Spring Boot (三)集成spring security
  20. python自动投递简历_用python在前程无忧高效投递简历

热门文章

  1. k20pro刷鸿蒙,红米K20Pro(Redmi K20Pro)一键刷入RECOVERY获取ROOT权限-刷机教程
  2. java方法重载与返回值类型无关
  3. 用R软件绘制中国分省市地图
  4. 树莓派默认密码_树莓派介绍:没有显示器,怎样远程控制树莓派?
  5. 2022年最新BIM计费标准,涉及14省市
  6. 分布式定时任务解决方案
  7. ExtJs6学习(一)【ExtJs介绍】
  8. 2022年最新《小鹿线web前端课程+项目实践课程》
  9. python第三方库文件传输助手_Python与微信——itchat包
  10. 免费的中医处方系统软件