如何把文件转换成已选择的字符编码(图)
优采云 发布时间: 2021-06-26 01:12如何把文件转换成已选择的字符编码(图)
问题:我的 Linux 系统中有一个编码为 iso-8859-1 的字幕文件。某些字符无法正常显示。我想将文本更改为 utf8 编码。 Linux下,有没有好的工具可以转换文本文件的字符编码?
众所周知,计算机只能处理低级二进制值,不能直接处理字符。存储文本文件时,文件中的每个字符都映射到一个二进制值,而硬盘上实际存储的正是这些“二进制值”。稍后当程序打开文本文件时,所有二进制值都被读入并映射回原创可读字符。只有当所有需要访问这个文件的程序都能“理解”它的编码,即二进制值到字符的映射时,才能很好地完成这个“保存打开”的过程,也保证了文件的往返可理解的数据过程。
如果不同的程序使用不同的编码处理同一个文件,源文件中的特殊字符将无法正常显示。这里的特殊字符是指非英文字母字符,例如重音字符(如ñ、á、ü)。
那么问题来了:1)我们如何确定某个文本文件使用的是什么字符编码? 2)我们如何将文件转换为选定的字符编码?
第一步
为了确定文件的字符编码,我们使用了一个名为“file”的命令行工具。因为 file 命令是标准的 UNIX 程序,所以我们可以在所有现代 Linux 发行版中找到它。
运行以下命令:
$ file --mime-encoding 文件名
第二步
下一步是检查您的 Linux 系统支持的文件编码类型。为此,我们使用名为 iconv 的工具和“-l”选项(小写 L)来列出所有当前支持的编码。
$ iconv -l
iconv 工具是 GNU libc 库的一部分,因此它在所有 Linux 发行版中都是开箱即用的。
第三步
在我们的Linux系统支持的编码中选择目标编码后,运行以下命令完成编码转换:
$ iconv -f old_encoding -t new_encoding 文件名
例如将iso-8859-1编码转换为utf-8编码:
$ iconv -f iso-8859-1-t utf-8 input.txt
了解如何使用我们演示的这些工具后,您可以像这样修复损坏的字幕文件:
关于 Oracle 的更多信息,请参考 Oracle 专页
有关 Ubuntu 的更多信息,请参阅 Ubuntu 专页
有关 Android 的更多信息,请参阅 Android 主题页面
有关 Fedora 的更多信息,请参阅 Fedora 专页
有关 Hadoop 的更多信息,请参阅 Hadoop 专页
关于RedHat的更多信息,请参考RedHat专页
有关 SUSE 的更多信息,请参阅 SUSE 专页
有关 CentOS 的更多信息,请参阅 CentOS 页面
本文将永久更新链接地址: