GB18030>GBK>GB2312>ASCII

ISO-8859-1>ASCII

UTF是世界级别的,
GB18030是中国推广的,UTF和GB18030这两种正在竞争。

UTF-8是unicode的一种实现形式,
UTF-16、UTF-32基本不用,似乎没有学习的必要。

注意使用enca命令来查看文件的当前编码,不要使用file -i,后者有时候不准。

比如得到当前文件的类型是GBK以后,那么就在下列命令中对应的地方输入GBK即可

然后就可以进行编码转化(下面的命令中有两个./是需要修改的,表示当前文件在哪里,以及要把文件输出到哪里)

find ./ -type f -exec iconv -f GBK -t UTF-8 {} -o ./{} \;
-f:from的意思
-t:to的意思
-f和-t的意思是从哪里来,到哪里去
整条命令的意思是:你是谁,你从哪里来,到哪里去?
所以这个命令中的GBK也可以改为GB18030

但是为了尽可能少报错,最好使用GB18030,因为他的涵盖范围是最广的,但是enca命令并不支持GB18030,所以使用GBK作为源头(也就是写在-f后面)就可以了,可能出错的情况类似如下:

iconv: 未知 28242 处的非法输入序列

网上虽然说可以增加-c选项,但是我觉得这个不是个合理的解决方案,好在出错的字符很少,确实可以这么做。

另外,根据以下链接可知

https://www.zhihu.com/question/34856351

由于UTF和GB18030属于两套体系,所以他们是互相不完全兼容的。

批量转化代码(直接遍历终端当前路径下面的所有最底层子目录和所有文件)

find ./ -type f -name "*.txt"|while read line;do 
>echo $line; 
>iconv -f GBK -t UTF-8 $line > ${line}.utf8; 
>mv $line ${line}.gbk; 
>mv ${line}.utf8 $line; 
>done

上面的“>”是在终端中输入“find ./ -type f -name "*.txt"|while read line;do ”以后,终端会自动输入的,自己不用再输入第二遍。

另外,在iconv进行转化的时候,如果出现以下报错

。。。

./C23-Mine/C23-Mine51.txt
iconv: 未知 353 处的非法输入序列

./C23-Mine/C23-Mine54.txt

。。。

那么就表示在转化C23-Mine51.txt这个文件时报错,但是其实基本上产生的字符损失是极小的。

最后是收尾工作,删除所有gbk后缀的文件

find -name "*.gbk" -exec rm -f {} \;

各种编码范围总结以及linux下面的编码批量转化相关推荐

  1. java linux urlencode_java字符编码转换研究(转)

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  2. linux java字符集编码_Java字符集编码

    1.  概述 在 下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 65 ...

  3. Linux系统修改编码(转)

    Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的默认编码为GBK.方法如下: 方法1: vi ...

  4. linux查看系统编码/语言和修改系统编码/语言的方法

    1.查看字符编码和语言 使用 locale 命令,语言是en_US(英语_美式),编码是UTF-8 2.修改字符编码和语言 对应配置文件 centos7  修改文件 /etc/locale.conf ...

  5. java字符编码采用_JAVA字符编码三:Java应用中的编码问题

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  6. linux字符串编码转换函数,Linux C++ 字符串 编码识别、编码转换

    最近在做一个类似垂直下载的爬虫系统.下载之后有个解析模块,解析之后要求编码一致的向后传入索引,便遇到了编码转换问题. 1. 编码的识别 推荐使用 libchardet, 可以在这个页面下载,使用说明就 ...

  7. linux windows 字符编码转换,Linux操作系统下汉字编码的转换

    因为项目的需要linux下将GBK编码转换为utf8编码,google一下,网上的相关资源比较少,下面的操作经过本人的反复试验.本例子同样适用于其他的编码转换. 有gbk到utf8的转换过程,需要经过 ...

  8. linux转换C编码风格

    在 Linux 下,比较流行的"行业"风格有 KR 的编码风格.GNU 的编码风格.Linux 内核的编码风格(基于 KR 的,缩进是 8 个空格)等,它们都可以通过 indent ...

  9. linux检测文件名编码,Linux下查看文件编码,文件或文件名编码格式转换 | 缥缈的云...

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...

最新文章

  1. 怎么学操作系统和计算机网络?
  2. java基础提升篇:synchronized同步块和volatile同步变量
  3. 更改应用程序图标_基于安卓11的ColorOS 11的主要功能和更改日志
  4. 一鼓作气 博客--第六篇 note6
  5. 堆排序原理及其实现(C++)
  6. iview给radio按钮组件加点击事件
  7. mysql外键关联查询_MySQL外键约束和多表联查
  8. matlab中结束脚本运行_matlab学习总结(入门篇)
  9. pandas read_sql
  10. dyld 加载 Mach-O
  11. jQuery自己定义绑定的魔法升级版
  12. Photoshop隐藏的4个彩蛋
  13. android 静态注册wifi广播,Android静态注册广播receiver检测WIFI连接状况变化
  14. win10设置保护色
  15. google站内搜索代码
  16. MFC如何添加bmp文件和ICO文件
  17. 三维重建中经常遇到的拓扑学概念的通俗解释
  18. 浅析企业即时通讯软件为企业带来的好处有哪些
  19. 微信小程序判断iphonex xs xr 样式
  20. 匹配包含换行符(回车)的任意字符串的正则表达式

热门文章

  1. jQuery获取自身HTML
  2. MacOS 常用终端命令大全
  3. all方法 手写promise_实现Promise.allSettled
  4. linux crontab结束,linux – Crontab:有开始和结束时间的日志吗?
  5. 小说的逻辑与反逻辑_毕飞宇北大演讲:“走”与“走”——小说内部的逻辑与反逻辑...
  6. ClickHouse分布式集群部署
  7. DNN:逻辑回归与 SoftMax 回归方法
  8. 模式识别两种方法:知识和数据
  9. python做一个记事本_python如何自制一个简易记事本?
  10. docker入门,基于ubuntu16.04