Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >技术|Linux 有问必答:在 Linux 如何更改文本文件的字符编码

技术|Linux 有问必答:在 Linux 如何更改文本文件的字符编码

原创
作者头像
用户8710643
修改于 2021-07-12 02:33:09
修改于 2021-07-12 02:33:09
3.1K0
举报
文章被收录于专栏:linux百科小宇宙linux百科小宇宙

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

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

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

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

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

运行下面的命令:

$file--mime-encodingfilename

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

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

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

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

$iconv-fiso-8859-1-tutf-8input.txt

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux下不同文件编码的转换
字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse Code)、Baudot code、Unicode和用二进制来表示的ASCII(American Standard Code for Information Interchange)码、这样便能够将文本在计算机中存储和通过通信网络发送出去。
大江小浪
2018/07/24
2.7K0
你所不了解的字符编码
前言 在我的工作中,常常会遇到形形色色的字符编码,对于各种编码技术本人了解的也不是很多。 本篇是我了解编码系列的开篇,主要内容讲述字符编码的基本概念,然后介绍一下常见的字符编码,最后说明一下 Java
BUG弄潮儿
2021/06/25
1.1K0
你所不了解的字符编码
Linux下文件字符编码格式检测和转换
目前多数情况下, 我们遇到的非英文字符文件都是使用UTF-8编码的, 这时一般我们查看这些文件的内容都不会有问题. 不过有时, 我们有可能会遇到非UTF-8编码的文件, 比如中文的GBK编码, 或者俄语的CP1251编码. 而文本文件一般不带有自身编码格式的信息, 这就给我们处理带来很多麻烦. 本文介绍几个Linux命令来检测和转换文本文件的编码格式.
别先生
2020/10/10
5.5K0
字符编码的前世今生——一文读懂字符编码
话说六年级二班有小明、小红两位同学,最近班上开了英语课,学着学着有些无聊,这时候小明想给小红传纸条,但是又担心被发现,突然小明灵机一动,在草纸上写下了一串数字12 9 11 5 21,然后就传给了小红,小红看了一眼莫名其妙,这时候小明冲着小红指了指自己英语书后面的字母表,小红看了几眼字母表,顿时明白过来,原来字母表上面有编号,小红按照编号,将这一串数字转换出来,得到的是like u,羞得小红脸色发红,这可真成了“小红”……
arcticfox
2019/06/26
2.2K0
字符编码的前世今生——一文读懂字符编码
字符集与字符编码的强化理解与操作实践
最近在工作中遇到了一个说大不大说小不小的问题,就是当我解析一个xml文件的时候,抛出了一个"Invalid byte 2 of 2-byte UTF-8 sequence"的异常,这个异常会导致解析直接退出,显然不能容忍。查阅相关资料稍微定位了一下,大概知道是字符集的问题,仔细一看,xml文件中的确有中文字符,而且当我把这些中文字符删了之后的确又能解析成功。不过我还是不能理解这当中的缘由,不过由于时间原因,当时只是把中文字符删了就草草完工。现在回头想想这个坑还是不能留,顺便趁机补下字符集相关的知识。
mythsman
2022/11/14
4880
字符编码
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://polaris.blog.51cto.com/1146394/377468
拾点阳光
2018/09/28
2.2K0
关于编码的那些事
之前做一个POC的时候,Vicky同学遇到一个关于编码的问题,问到我,我觉得当时没有解释得很清楚,于是决定查阅相关的资料文档,写一篇文章,记录这个问题及对背后的原因、原理的理解。
Bruce Li
2019/07/30
7580
关于编码的那些事
【Java 基础篇】优雅处理文本数据:Java字符流详解
当涉及字符流时,Java提供了一组类来处理字符数据的输入和输出。字符流比字节流更适合处理文本文件,因为它们可以正确处理字符编码,而不仅仅是字节。
繁依Fanyi
2023/10/12
4090
【Java 基础篇】优雅处理文本数据:Java字符流详解
MySQL字符编码指南--基础篇
要了解MySQL的字符编码,解决乱码问题,必须先了解字符编码。我们知道所谓信息,在计算机中不过是一串的位(bit:0 or 1),每8个bit组成了一个字节,而这些字节到底表示什么,取决于读到这些对象的上下文,1个字节序列,可以表示整数,字符串或者机器指令,当然也可以表示中文,日文,甚至上古文字。
DBA成江东
2023/07/15
8510
MySQL字符编码指南--基础篇
Java转换流_java中的字符使用什么编码
字节流:针对二进制文件 字符流:针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-8
全栈程序员站长
2022/10/01
8580
Java转换流_java中的字符使用什么编码
计算机基础篇 | 一看就懂的字符集、ASCII、GBK、UTF-8、Unicode、乱码、字符编码问题
做通信的时候,或者使用IO流读写数据的时候脑袋总是晕晕乎乎的。 与计算机打交道久了,不可避免会看到“鬼画符”式的乱码,让人云里雾里的,特别烦人。
烟雨平生
2023/10/20
5.8K0
计算机基础篇 | 一看就懂的字符集、ASCII、GBK、UTF-8、Unicode、乱码、字符编码问题
关于字符编码的那些事
一、编码是什么 编码为了某种目的把信息从一种形式集合转换为另一种形式集合的过程,古时的鸣金收兵,从某种意义上讲也是一种编码,将帅发出了退兵的命令,为了让更多的人能够知道这个命令,传令兵把这个信息转换为了锣声,传递了出去 与编码相对的还有解码,解码是根据某种规则将信息恢复到原状的过程,士兵之前都接收过训练,在听到锣声之后,明白到锣声代表退兵,便开始执行这一命令。 旗语,电报中的莫斯电码等等,这些东西里面也包含了编码 二、关于字符集和字符编码 因为计算机中的信息都是用二进制数表示的,所以我们必须将汉字、英文按照
magicsoar
2018/02/06
1K0
关于字符编码的那些事
android 中国通信乱码问题
计算机要处理各种字符,就须要将字符和二进制内码相应起来,这样的相应关系就是字符编码。
全栈程序员站长
2022/07/05
8240
在Linux中对文件的编码及对文件进行编码转换操作
参考:https://www.cnblogs.com/mithrilon/archive/2018/06/03/9082449.html
别先生
2020/10/10
9.7K0
在Linux中对文件的编码及对文件进行编码转换操作
字符,字符集,字符编码
现在Unicode已然一统天下,我想很多年轻的程序员可能都没遇到过编码问题,更不用说了解编码的发展了。前些日子在一个老网站上偶遇乱码,虽然入行时间不短,但对其究竟也是不甚了解,好奇心驱使下落入深坑。还好经过一段时间的摸爬滚打,边学边写,总算大概理清了个脉络,记录之,分享之。
_春华秋实
2019/02/22
1.7K0
字符,字符集,字符编码
计算机字符编码的前世今生
有人丢给你下面这张图,如果你能清楚地说明它们之间的关系以及用途,那么你对字符编码的理解肯定过关了。
冬夜先生
2021/10/12
4350
Java 字符编码与解码
IT可乐
2018/01/04
2.4K0
【Coding】聊聊字符编码那些事儿
文本文件中存放的数据在用户读取时可以按照编码类型还原成字符形式,我们可以直接打开,如下:
一名白帽的成长史
2019/10/13
1.4K0
全栈之前端 | 11.HTML常用编码集及其Entity实体符号编码介绍篇
描述: 为了正确显示 HTML 页面,Web 浏览器必须知道要使用哪个字符集, 此处作为开发者必回接触到的常见字符集编码有如下:ASCII、ANSI、ISO-8859-1以及Unicode(UTF-8/16)等。
全栈工程师修炼指南
2023/10/31
1.2K0
全栈之前端 | 11.HTML常用编码集及其Entity实体符号编码介绍篇
精述字符编码
带你了解ASCII,Latin1,ANSI,Unicode,UCS-2,UCS-4,UTF-8,UTF-16,UTF-32,GB2312,GB13000,GBK,GB18030,BIG5,BMP,Code Page,BOM,MBCS,Little Endian,Big Endian,内码,外码。
恋喵大鲤鱼
2018/08/03
1.5K0
精述字符编码
相关推荐
Linux下不同文件编码的转换
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档