您的位置:首页 > 运维架构 > Linux

Linux修改文件编码

2017-05-25 21:10 85 查看
如果不同的程序使用不同的编码来处理同一个文件,源文件中的特殊字符就无法正常显示。这里的特殊字符指的是非英文字母的字符,例如带重音的字符(比如 ñ,á,ü)。

然后问题就来了: 1)我们如何确定一个确定的文本文件使用的是什么字符编码? 2)我们如何把文件转换成已选择的字符编码?

步骤一

为了确定文件的字符编码,我们使用一个名为 “file” 的命令行工具。因为 file 命令是一个标准的 UNIX 程序,所以我们可以在所有现代的 Linux 发行版中找到它。

运行下面的命令:

]# file --mime-encoding filename


例如:

]# file --mime-encoding sample.txt
sample.txt: utf-16le


步骤二

下一步是查看你的 Linux 系统所支持的文件编码种类。为此,我们使用名为 iconv 的工具及 “-l” 选项(L 的小写)来列出所有当前支持的编码。

]# iconv -l


iconv 工具是 GNU libc 库组成部分,因此它在所有 Linux 发行版中都是开箱即用的。

步骤三

在我们在我们的 Linux 系统所支持的编码里面选定了目标编码之后,运行下面的命令来完成编码转换:

]# iconv -f old_encoding -t new_encoding filename -o newfilename


例如,把 utf-16le 转为 utf-8:

]# iconv -f utf-16le -t utf-8 sample.txt -o sample_code.txt


大功告成

// 查看原文件编码
]# file --mime-encoding sample.txt sample.txt: utf-16le
// 查看转码后的文件编码
]# file --mime-encoding sample_code.txt
sample_code.txt: utf-8


链接:Linux 有问必答:在 Linux 如何更改文本文件的字符编码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: