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中国 荣誉推出

相关内容

原创 ...
多模态大模型正在从“看得见”走向“看得懂、想得通”。 智谱正式发布...
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
DeepSeek“小”更新...
2025-05-30 15:40:30

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...