Linux 有问必答:在 Linux 如何更改文本文件的字符编码
创始人
2024-03-01 14:15:47
0

问题:在我的 Linux 系统中有一个编码为 iso-8859-1 的字幕文件,其中部分字符无法正常显示,我想把文本改为 utf8 编码。在 Linux 中, 有没有一个好的工具来转换文本文件的字符编码?

正如我们所知道的那样,电脑只能够处理低级的二进制值,并不能直接处理字符。当一个文本文件被存储时,文件中的每一个字符都被映射成二进制值,实际存储在硬盘中的正是这些“二进制值”。之后当程序打开文本文件时,所有二进制值都被读入并映射回原始的可读字符。只有当所有需要访问这个文件的程序都能够“理解”它的编码,即二进制值到字符的映射时,这个“保存和打开”的过程才能很好地完成,这也确保了可理解数据的往返过程。

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

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

步骤一

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

运行下面的命令:

$ file --mime-encoding filename 

步骤二

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

$ iconv -l 

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

步骤三

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

$ iconv -f old_encoding -t new_encoding filename

例如,把 iso-8859-1 编码转换为 utf-8 编码:

$ iconv -f iso-8859-1 -t utf-8 input.txt 

了解了我们演示的如何使用这些工具之后,你可以像下面这样修复一个受损的字幕文件:


via: http://ask.xmodulo.com/change-character-encoding-text-file-linux.html

译者:wangjiezhe 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

亚马逊CEO:AI正在改变...
大约一个月前,亚马逊CEO安迪·贾西曾说过“人工智能将意味着更少的...
2025-08-01 12:13:19
原创 ...
多模态大模型正在从“看得见”走向“看得懂、想得通”。 智谱正式发布...
2025-07-02 15:40:54
9B“小”模型干了票“大”...
金磊 发自 凹非寺 量子位 | 公众号 QbitAI 如果一个视觉...
2025-07-02 13:41:42
AI编程再突破,首个多智能...
曾经有着较高技术门槛的编程,正随着AI技术的普及加速成为人人可用的...
2025-06-24 17:13:18
[oeasy]python...
拉丁字符 回忆上次内容 上次回顾了字型编码的进化过程 7-bit ...
2025-05-31 22:06:32
未来GPT-5不会太大参数...
从目前神经网络深度学习原理 从以上可以得知,是要输入足够的数据学习...
2025-05-30 22:39:20

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...