各种编码范围总结以及linux下面的编码批量转化
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下面的编码批量转化相关推荐
- java linux urlencode_java字符编码转换研究(转)
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- linux java字符集编码_Java字符集编码
1. 概述 在 下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 65 ...
- Linux系统修改编码(转)
Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的默认编码为GBK.方法如下: 方法1: vi ...
- linux查看系统编码/语言和修改系统编码/语言的方法
1.查看字符编码和语言 使用 locale 命令,语言是en_US(英语_美式),编码是UTF-8 2.修改字符编码和语言 对应配置文件 centos7 修改文件 /etc/locale.conf ...
- java字符编码采用_JAVA字符编码三:Java应用中的编码问题
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- linux字符串编码转换函数,Linux C++ 字符串 编码识别、编码转换
最近在做一个类似垂直下载的爬虫系统.下载之后有个解析模块,解析之后要求编码一致的向后传入索引,便遇到了编码转换问题. 1. 编码的识别 推荐使用 libchardet, 可以在这个页面下载,使用说明就 ...
- linux windows 字符编码转换,Linux操作系统下汉字编码的转换
因为项目的需要linux下将GBK编码转换为utf8编码,google一下,网上的相关资源比较少,下面的操作经过本人的反复试验.本例子同样适用于其他的编码转换. 有gbk到utf8的转换过程,需要经过 ...
- linux转换C编码风格
在 Linux 下,比较流行的"行业"风格有 KR 的编码风格.GNU 的编码风格.Linux 内核的编码风格(基于 KR 的,缩进是 8 个空格)等,它们都可以通过 indent ...
- linux检测文件名编码,Linux下查看文件编码,文件或文件名编码格式转换 | 缥缈的云...
如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...
最新文章
- 怎么学操作系统和计算机网络?
- java基础提升篇:synchronized同步块和volatile同步变量
- 更改应用程序图标_基于安卓11的ColorOS 11的主要功能和更改日志
- 一鼓作气 博客--第六篇 note6
- 堆排序原理及其实现(C++)
- iview给radio按钮组件加点击事件
- mysql外键关联查询_MySQL外键约束和多表联查
- matlab中结束脚本运行_matlab学习总结(入门篇)
- pandas read_sql
- dyld 加载 Mach-O
- jQuery自己定义绑定的魔法升级版
- Photoshop隐藏的4个彩蛋
- android 静态注册wifi广播,Android静态注册广播receiver检测WIFI连接状况变化
- win10设置保护色
- google站内搜索代码
- MFC如何添加bmp文件和ICO文件
- 三维重建中经常遇到的拓扑学概念的通俗解释
- 浅析企业即时通讯软件为企业带来的好处有哪些
- 微信小程序判断iphonex xs xr 样式
- 匹配包含换行符(回车)的任意字符串的正则表达式
热门文章
- jQuery获取自身HTML
- MacOS 常用终端命令大全
- all方法 手写promise_实现Promise.allSettled
- linux crontab结束,linux – Crontab:有开始和结束时间的日志吗?
- 小说的逻辑与反逻辑_毕飞宇北大演讲:“走”与“走”——小说内部的逻辑与反逻辑...
- ClickHouse分布式集群部署
- DNN:逻辑回归与 SoftMax 回归方法
- 模式识别两种方法:知识和数据
- python做一个记事本_python如何自制一个简易记事本?
- docker入门,基于ubuntu16.04