很多朋友都遇到过这类问题,在WINDOWS平台下编辑的含有中文内容的文件当在Linux平台下显示时中文内容变成了乱码。
本文:
首先, 以 WIN10 系统 自带的 记事本 编辑几个txt文件。
然后,用Ubuntu 16.04 平台下的cat 命令来显示这些文件的内容,来演示这类问题。
最后,提供一种针对该问题的解决方法。
1、登录WIN10,用记事本编辑三个文件:
english_ansi.txt:纯英文默认编码保存
english_chn_ansi.txt:中、英文默认编码保存
english_chn_utf-8.txt:中、英文UTF-8编码保存
输入一些符合演示需求的内容。
2、登录Ubuntu 16.04,把上面三个文件拷贝的合适位置,打开Terminal,输入命令:
cat -n eng*.txt
file eng*.txt
演示结果如下图:
图中显示的演示文件:
每个都是三行内容,结合图中的cat -n eng*.txt和file eng*.txt命令的结果可以看出:
english_chn_ansi.txt:中、英文,中文相关内容为乱码。file命令显示该文件的编码为ISO-8859。
english_ansi.txt:显示效果很理想,纯英文,无乱码。file命令显示该文件的编码为ASCII。
english_chn_utf-8.txt:显示效果很理想,中、英文,无乱码。file命令显示该文件的编码为UTF-8 Unicode。
3、原因分析:
WIN10自带的记事本保存文件时默认的文件编码为ANSI,当文件内容为纯英文时,在Linux平台下显示正常。
一旦文件内容含有中文,记事本默认就把文件保存为ISO-8859编码类型,而LINUX大家庭中的各种工具、软件都更喜爱UTF-8编码,此时该文件的中文部分在LINUX平台下就很容易显示为乱码。
4、解决方法:
为了避免出现这种中文显示乱码的问题,在WIN10上用记事本保存文件时,请更改默认的ANSI编码为UTF-8编码。如下图所示: