分享

命令行下查看看文件的编码

 gearss 2022-01-08

file -i 文件

就会输出linux识别出来的文件编码

一、运用iconv命令执行编码转换文件内容编码转换

iconv -f 现在的编码 -t 要转换的编码 文件

执行之后只是输出经过转换的文本而已,要保存的话

iconv -f 现在的编码 -t 要转换的编码 文件 -o 目标文件

或者

iconv -f 现在的编码 -t 要转换的编码 文件 > 目标文件

二、更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,并且还支持成批转换。

enca -x utf-8 *

以上命令是转换当前目录下的所有文件的编码为utf-8

也可以针对单个文件,另外还有一个参数是指定当前语言

enca -L zh_CN -x utf-8 文件

三、文件名编码转换

由于如今用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容能够用iconv来转 换可是好多中文的文件名仍旧乱码,找到个能够转换文件名编码的命令,就是convmv。

convmv命令细致参数

比如

convmv -f GBK -t UTF-8 *.mp3

不过这个命令不会直正的转换,你能够看到转换前后的比拟。假设要直正的转换要加上参数 –notest

convmv -f GBK -t UTF-8 –notest *.mp3

-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然能够仍旧乱码哦。尚有一个参数很有用。就是 -r 这个表示递归转换现在目录下的一切子目录。

四、目录下所有文件递归转换

find default -type d -exec mkdir -p utf/{} \;

find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

末尾有分号

这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。

对上面的命令进行解释:

-exec command: 执行命令, 具体介绍见后文. -ok command: 和-exec一样, 除了命令执行需要用户许可. -print: 打印文件名 -ls: 列出文件详细信息

简单地说, -exec或-ok, 将查询到的文件作为参数传递给后面的命令执行, 而参数的位置用{}标识, 即命令中, “{}”替换成find查找出来的文件名, 最后”\;”表示结束符.

作者:红山玉龙

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多