如何在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的编码的中文内容了。
复杂
如果喜欢复杂一些,来消磨一些时间的话,建议该方法。
查看文件编码
首先在命令行中查看两种文件编码:
file
1 | file yourfile |
显示Non-ISO extended-ASCII text, with very long lines, with CRLF line terminators
(并未显示出文件编码类型)
enca
(推荐)【由于file
的局限性】
1 | enca -L chinese yourfile |
显示Simplified Chinese National Standard; GB2312 CRLF line terminators
编码转换
知道了文件编码类型,就可以直接用命令 iconv
转换:
1 | ## 举例将编码格式为GB2312类型的yourfile文件转换为编码格式为UTF-8的afterfile文件 |
但是可能显示无法转换的提示,这个时候可以使用 GB18030
编码格式,因为它比 GB2312
大许多。
1 | iconv -f GB18030 -t UTF-8 yourfile > afterfile |
结果
转换后的文件成功在Mac自带文本编辑器中打开!
(由于版权等因素,只能如此展示结果)
问就是“少百度,多google!”
Reference