如何在Mac上打开乱码文件

前言

随便下了个txt后发现Mac的自带文本编辑器打开后是乱码,具体形式表现为下图:

但Windows是可以正常打开的,说明是文件编码的问题。

文件编码问题

linux/unix默认文件存储格式为utf-8,而windows中文版默认存储格式为GBK,utf-8查看windows下的中文文件就会出现乱码。

gbk编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。

utf-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。

区别:

utf-8编码包含全世界所有国家需要用的字符,它比较灵活,长度在1-6个字节,utf-8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比gbk大,对于网站打开速度而言,也是有一定影响的。

gbk编码主要用中文编码,包含全部中文字符,gbk的长度为2个字节,所以和gbk相比,utf-8会占用更多的数据库储存空间。对于gbk编码格式,虽然它的功能少,仅限于中文字符,但它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。

问题解决

简单

最简单的就是找一个支持GBK的编辑器(例如VSCode)。

或者在sublime中安装下列插件:

Preferences -> Package Control -> Install Package

安装插件

  • Codecs33
  • ConvertToUTF8
  • GBK Support

重启Sublime,即可正常打开ANSI,GBK的编码的中文内容了。

复杂

如果喜欢复杂一些,来消磨一些时间的话,建议该方法。

查看文件编码

首先在命令行中查看两种文件编码:

  1. file
1
file yourfile

显示Non-ISO extended-ASCII text, with very long lines, with CRLF line terminators(并未显示出文件编码类型)

  1. enca推荐)【由于 file 的局限性】
1
enca -L chinese yourfile

显示Simplified Chinese National Standard; GB2312 CRLF line terminators

编码转换

知道了文件编码类型,就可以直接用命令 iconv 转换:

1
2
## 举例将编码格式为GB2312类型的yourfile文件转换为编码格式为UTF-8的afterfile文件
iconv -f GB2312 -t UTF-8 yourfile > afterfile

但是可能显示无法转换的提示,这个时候可以使用 GB18030 编码格式,因为它比 GB2312 大许多。

1
iconv -f GB18030 -t UTF-8 yourfile > afterfile 

结果

转换后的文件成功在Mac自带文本编辑器中打开!

(由于版权等因素,只能如此展示结果)

问就是“少百度,多google!”

Reference

----------到结尾啦!! Hoohoo----------