出处:https://www.jianshu.com/p/f55ddf1e9839

  经常会在Mac上打开一个txt文件,发现里面的中文都是乱码,问题是在Windows和手机上看都完全是正常的,这就十分闹心了。网上千奇百怪的解决方案大多不能用,试错后发现一个解决方案。需要用到命令行工具iconv,语法是这样的:

iconv -f encoding -t encoding sourcefile > destinationfile

  比如一个典型的例子(也是大多数情况):

iconv -f GB18030 -t utf-8 A.txt > B.txt

  原文中是GB18030 > UTF8,不知为何会报错,改为utf-8后好用。假如是其他编码,比如繁体编码BIG-5,也都可以实现,可以用iconv自己打印一个支持转换的list看看。

  看看效果:

  完全解决了我们的问题。又有了新的疑惑,why GB18030 > UTF8 ?

  补充资料:

  兼容性

  • GB2312:基本满足了汉字的计算机处理需要,对于人名、古汉语等方面出现的罕用字,GB 2312不能处理。
  • GBK:GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准。
  • GB18030 :对GB 2312-1980完全向后兼容,与GBK基本向后兼容,并支持Unicode(GB 13000)的所有码位。

  发布时间

  • GB2312:由中国国家标准总局1980年发布,1981年5月1日开始实施。
  • GBK:1995年12月1日制订。
  • GB18030 :初版于2000年3月17日发布,现行版本于2005年11月8日发布,2006年5月1日实施。

解决Mac上打开txt文件乱码问题的更多相关文章

  1. 怎样在 Mac 上打开 ~_Library 文件夹

    怎样在 Mac 上打开 ~_Library 文件夹 听语音 浏览:17674 | 更新:2015-05-20 10:51 | 标签:文件夹 Mac 上的~/Library 文件夹是默认为隐藏的.因为苹 ...

  2. UBUNTU13.04下Gedit打开txt文件乱码解决方法

    刚刚装的ubuntu13.04,在用ubuntu下的gedit打开win7下的txt文件时中文显示乱码,这是因为编码方式不同造成的.windows下文件的编码方式是GBK,而ubuntu下gedit默 ...

  3. FAQ&ubuntu12.04 gedit 打开 txt 文件乱码

    ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同.解决办法:终端里依次输入以下2 条命令即可: 代码: ...

  4. ubuntu打开 txt 文件乱码

    ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同.解决办法:终端里依次输入以下2 条命令即可: 代码: ...

  5. sublime打开txt文件乱码的问题

    我们使用Sublime打开TXT文件的时候,会经常因为编码的问题造成乱码. 这是因为TXT记事本的默认保存编码格式是GBK,而Sublime text不支持GB2312和GBK编码. 我们可以通过安装 ...

  6. Ubuntu16.04 打开txt文件乱码

    最近遇到个小问题:Ubuntu16.04下打开txt出现乱码,倒腾下解决了这个问题,记录下来. Ubuntu16.04 默认已经安装gedit.直接双击被打开的文件默认用gedit打开,显然这种方式行 ...

  7. Linux打开txt文件乱码解决方案

    在ubuntu16.04下打开dic_ec.txt,出现中文乱码. 先输入 gsettings set org.gnome.gedit.preferences.encodings auto-detec ...

  8. 如何在Mac上创建.txt文件

    cd ~/Desktoptouch test.txt cd 需要创建的文件夹目录vi 需要创建文件的文件名.txt

  9. linux下打开txt显示乱码的解决方法

    Linux打开txt文件乱码的解决方法   Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb1 ...

随机推荐

  1. layui加tp5图片上传实例

    <div class="layui-fluid"> <div class="layui-row"> <form class=&qu ...

  2. Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!

    导读(苦恼) 做多个项目的时候,可能会有这样的需求,需要把A项目中的某些功能移植到B项目上:移植途中,牵扯到顺便把表也要一块移植过去,若表字段较少,那还好,可能耗费10分钟就搞完了,万一碰上几十个字段 ...

  3. 【QT】QT资料集锦

    欢迎来到我的博客! 以下链接均是日常学习,偶然得之,并加以收集整理,感兴趣的朋友可以多多访问和学习.如果以下内容对你有所帮助,不妨转载和分享.(Update on 30,November,2019) ...

  4. [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator

    Unity制作2D产品的时候,我们在制作动画的时候,要不断的生成Animation,Animator等等资源,如果动画一多的话,就变得麻烦.由于Unity是支持插件开发的,我们可以添加一个Editor ...

  5. eatwhatApp开发实战(十一)

    之前我们实现了点击item项跳转activity,接下来我们再其基础上添加参数的传递. 在MainActivity里面的onItemClick()中: String name = shopList.g ...

  6. python九九乘法表程序代码

    按照c语言的思路来考虑python的,方法很简单,直接运用双重循环即可,本代码为了代码量少采用的是while嵌套双循环. 取两个随机变量 (1)i和j都从1开始(因为表中最小数值为1) (2)i控制第 ...

  7. STM32读取bq33100数据——硬件IIC

    背景:拟采用bq33100超级电容管理芯片,实现自动的超级电容组的均压任务.需监控芯片的工作情况,以及电容组的均压情况. 平台: 硬件:STM32F103C8T6 通信:SMBus(低速IIC) 目标 ...

  8. 从0开始探究vue-公共变量的管理

    背景 在Vue项目中,我们总会遇到一些公共数据的处理,如方法拦截,全局变量等,本文旨在解决这些问题 解决方案 事件总线 所谓事件总线,就是在当前的Vue实例之外,再创建一个Vue实例来专门进行变量传递 ...

  9. “造轮运动”之 ORM框架系列(二)~ 说说我心目中的ORM框架

    ORM概念解析 首先梳理一下ORM的概念,ORM的全拼是Object Relation Mapping (对象关系映射),其中Object就是面向对象语言中的对象,本文使用的是c#语言,所以就是.ne ...

  10. Java实现 LeetCode 554 砖墙(缝隙可以放在数组?)

    554. 砖墙 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度 ...