在使用python3做NLP中文文本分类时,由于下载的搜狗语料库本身的编码有关系,本身编码是ASCII码,而我们需要以UTF-8来读取,所以就遇到如下不能显示中文文本的输出(mac下):
起初针对此问题进行了pyhton3的学习,可以参考:https://blog.csdn.net/lilong117194/article/details/82563723
但是对于我新建的mac下的中文文本文件输出还是如上述的编码,我就纳闷了。。
于是开始使用mac自带的各种命令进行转换编码的修改:
1. 使用命令工具
- 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
- enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
- iconv 转换,iconv的命令格式如下:
2. 傻瓜型命令行工具enca 它不但能智能的识别文件的编码,而且还支持成批转换。
Mac下安装
关于应用程序 应用名称:enca 应用说明:Charset分析仪和转换器 应用网站:http://cihar.com/software/enca/
安装应用程序 按Command+Space并键入Terminal,然后按enter / return键。 在终端应用程序中运行: ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” < /dev/null 2> /dev/null 并按Enter / return键。 如果屏幕提示您输入密码,请输入Mac的用户密码以继续。当您输入密码时,它不会显示在屏幕上,但系统会接受它。所以只需输入密码,然后按ENTER / RETURN键。然后等待命令完成。 跑:
完成!你现在可以使用了enca。
mac新建文本如下: 于是又尝试了以上的方法,结果mac命令竟然不能进行编码的转换,如下:
貌似还是没有进行编码的转换,然后用vim打开看了下,是这样的: 而且用vim的命令修改文件的编码,貌似也是没用,这就让我无**可说了,这时仔细观察了下文件的编码的内容,貌似不全是二进制编码的格式。。
其实!!因为新建的mac文本不是纯文本,是rtf格式的文件,因为rtf文件本身就包含许多格式信息,比如字体颜色表格什么的,不是纯文本文件,直接读不能显示中文,转换编码也没用,我这里的做法是: 上面有一个’制作纯文本’,点击保存,就ok了,其他的问题也就都搞定了。。
当然如果文本很大,无法打开,不能手动保存为纯文本时,就要另想办法了,以后在讨论。。
就这几天这个mac系统,我真的是拿”它“没办法。。。