Linux 文件编码大挪移_linux 挪文件

78 阅读3分钟
$ file -i Car.java
$ file -i CarDriver.java

Linux 文件编码大挪移Linux 文件编码大挪移

在 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 文件编码大挪移Linux 文件编码大挪移

列出所有已有编码字符集

将文件从 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 文件编码大挪移Linux 文件编码大挪移

在 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   $FROM_ENCODING  -t   $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".

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK