Linux 文件编码大挪移

2024-01-15 12:18
文章标签 linux 编码 挪移

本文主要是介绍Linux 文件编码大挪移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读 在这篇教程中,我们将解释字符编码的含义,然后给出一些使用命令行工具将使用某种字符编码的文件转化为另一种编码的例子。最后,我们将一起看一看如何在 Linux 下将使用各种字符编码的文件转化为 UTF-8 编码。

你可能已经知道,计算机除了二进制数据,是不会理解和存储字符、数字或者任何人类能够理解的东西的。一个二进制位只有两种可能的值,也就是0或1,真或假,是或否。其它的任何事物,比如字符、数据和图片,必须要以二进制的形式来表现,以供计算机处理。

094212ozmfxgxmewtcz6at

简单来说,字符编码是一种可以指示电脑来将原始的 0 和 1 解释成实际字符的方式,在这些字符编码中,字符都以一串数字来表示。

字符编码方案有很多种,比如 ASCII、ANCI、Unicode 等等。下面是 ASCII 编码的一个例子。

字符            二进制
A               01000001
B               01000010

在 Linux 中,命令行工具iconv用来将使用一种编码的文本转化为另一种编码。

你可以使用 file 命令,并添加-i或–mime参数来查看一个文件的字符编码,这个参数可以让程序像下面的例子一样输出字符串的 mime (Multipurpose Internet Mail Extensions) 数据:

$ file -i Car.java
$ file -i CarDriver.java

如何在 Linux 中将文件编码转换为 UTF-8

在 Linux 中查看文件的编码

iconv 工具的使用方法如下:

$ iconv option
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile 

在这里,-f或–from-code表明了输入编码,而-t或–to-encoding指定了输出编码。

为了列出所有已有编码的字符集,你可以使用以下命令:

$ iconv -l 

如何在 Linux 中将文件编码转换为 UTF-8

列出所有已有编码字符集

将文件从 ISO-8859-1 编码转换为 UTF-8 编码

下面,我们将学习如何将一种编码方案转换为另一种编码方案。下面的命令将会将 ISO-8859-1 编码转换为 UTF-8 编码。

考虑如下文件input.file,其中包含这几个字符:

� � � �

我们从查看这个文件的编码开始,然后来查看文件内容。最后,我们可以把所有字符转换为 UTF-8 编码。

在运行iconv命令之后,我们可以像下面这样检查输出文件的内容,和它使用的字符编码。

$ file -i input.file
$ cat input.file 
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
$ cat out.file 
$ file -i out.file 

如何在 Linux 中将文件编码转换为 UTF-8

在 Linux 中将 ISO-8859-1 转化为 UTF-8

注意:如果输出编码后面添加了//IGNORE字符串,那些不能被转换的字符将不会被转换,并且在转换后,程序会显示一条错误信息。

好,如果字符串//TRANSLIT被添加到了上面例子中的输出编码之后 (UTF-8//TRANSLIT),待转换的字符会尽量采用形译原则。也就是说,如果某个字符在输出编码方案中不能被表示的话,它将会被替换为一个形状比较相似的字符。

而且,如果一个字符不在输出编码中,而且不能被形译,它将会在输出文件中被一个问号标记?代替。

将多个文件转换为 UTF-8 编码

回到我们的主题。如果你想将多个文件甚至某目录下所有文件转化为 UTF-8 编码,你可以像下面一样,编写一个简单的 shell 脚本,并将其命名为encoding.sh:

#!/bin/bash
### 将 values_here 替换为输入编码 FROM_ENCODING="value_here" ### 输出编码 (UTF-8) TO_ENCODING="UTF-8" ### 转换命令 CONVERT=" iconv -f FROMENCODINGt TO_ENCODING"

使用循环转换多个文件

for file in *.txt; do
CONVERT" file” -o “${file%.txt}.utf8.converted”
done
exit 0

保存文件,然后为它添加可执行权限。在待转换文件 (*.txt) 所在的目录中运行这个脚本。

$ chmod  +x  encoding.sh
$ ./encoding.sh

重要事项:你也可以使这个脚本变得更通用,比如转换任意特定的字符编码到另一种编码。为了达到这个目的,你只需要改变 FROM_ENCODING及TO_ENCODING变量的值。别忘了改一下输出文件的文件名“${file%.txt}.utf8.converted”.

若要了解更多信息,可以查看iconv的手册页

$ man iconv

将这篇指南总结一下,理解字符编码的概念、了解如何将一种编码方案转换为另一种,是一个电脑用户处理文本时必须要掌握的知识,程序员更甚。

本文转载自:http://www.linuxprobe.com/encoding-convert-utf8.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

这篇关于Linux 文件编码大挪移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608852

相关文章

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE