Mac下文件的编码及修改编码

在使用python3做NLP中文文本分类时,由于下载的搜狗语料库本身的编码有关系,本身编码是ASCII码,而我们需要以UTF-8来读取,所以就遇到如下不能显示中文文本的输出(mac下):

u: {\rtf1\ansi\ansicpg936\cocoartf1561\cocoasubrtf400
{\fonttbl\f0\fnil\fcharset134 PingFangSC-Regular;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0

\f0\fs24 \cf0 \'ce\'d2\'b5\'c4\'cc\'ec\'a3\'a1}

起初针对此问题进行了pyhton3的学习,可以参考:https://blog.csdn.net/lilong117194/article/details/82563723

但是对于我新建的mac下的中文文本文件输出还是如上述的编码,我就纳闷了。。

于是开始使用mac自带的各种命令进行转换编码的修改:

1. 使用命令工具

  • 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
  • enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename
  • iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
iconv -f UTF-8 -t GBK file1 -o file2 #将一个UTF-8 编码的文件转换成GBK编码

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键。然后等待命令完成。
跑:

brew install enca

完成!你现在可以使用了enca。

mac新建文本如下:
这里写图片描述
于是又尝试了以上的方法,结果mac命令竟然不能进行编码的转换,如下:

adminodeMacBook-Pro-3:mm lilong$ file --mime-encoding text.txt 
text.txt: us-ascii
adminodeMacBook-Pro-3:mm lilong$ iconv -f us-ascii  -t gbk  text.txt > text3.txt 
adminodeMacBook-Pro-3:mm lilong$ file --mime-encoding text_3.txt 
adminodeMacBook-Pro-3:mm lilong$ file --mime-encoding text3.txt 
text3.txt: us-ascii

貌似还是没有进行编码的转换,然后用vim打开看了下,是这样的:
这里写图片描述
而且用vim的命令修改文件的编码,貌似也是没用,这就让我无**可说了,这时仔细观察了下文件的编码的内容,貌似不全是二进制编码的格式。。

其实!!因为新建的mac文本不是纯文本,是rtf格式的文件,因为rtf文件本身就包含许多格式信息,比如字体颜色表格什么的,不是纯文本文件,直接读不能显示中文,转换编码也没用,我这里的做法是:
这里写图片描述
上面有一个’制作纯文本’,点击保存,就ok了,其他的问题也就都搞定了。。

adminodeMacBook-Pro-3:mm lilong$ iconv -f utf-8  -t gbk  text_1.txt > text3.txt
adminodeMacBook-Pro-3:mm lilong$ file --mime-encoding text3.txt 
text3.txt: iso-8859-1
adminodeMacBook-Pro-3:mm lilong$ 

当然如果文本很大,无法打开,不能手动保存为纯文本时,就要另想办法了,以后在讨论。。

就这几天这个mac系统,我真的是拿”它“没办法。。。

参考:https://segmentfault.com/a/1190000007073776?_ea=1252426

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
项目中有很多文件因为编码的原因导致用户使用的时候看到的是乱码,或是不兼容的情况,网上找了一圈 也没有适合咱程序员的转码的工具,所以写了一个批量转换工具 虽然已经使用在我司生产项目中,但还是建议你转换前备份一次文件 注意(使用前必看): 注意(使用前必看): 注意(使用前必看): 支持所有文本格式的文档(如 txt,js,css,java,c..),二进制或程序(如word,excel,exe文件)不要使用本转换工具,因为是JAVA程序 需要你的机器上已经安装了JDK 使用方法: 1,打开start.sh文件,windows用户把扩展名.sh修改为.bat 2,修改三个双引号("")中的参数, 第一个参数是文件夹路径, 第二个参数表示要转换成的编码 如utf-8,utf-8-bom,ansi 等编码都支持 第二个参数表示要转换的文件类型,以扩展名的形式提供支持,可以提供多个文件扩展名 以空格分隔 如:我要转换E盘下 E:\work_architecture\doc目录下的所有js 和 css 文件 编码为 utf-8 那么,你要执行的命令就是 java -jar code_conversion.jar "E:\work_architecture\doc" "utf-8" ".js .css" 还是挺简单的吧~~ 支持的功能: 1,批量转换,子目录自动发现 2,文件编码自动识别,所以使用的时候不用提供原文件编码;识别不了不会转换,保证项目文件的安全 3,支持utf-8-bom编码 4,兼容Linux & Windows & Mac系统 5,不用安装,只要机器有JDK就可以使用 需要源码的请邮件jidaqiana@163.com 或 私信我
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值