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

来源:互联网 发布:大学生借钱软件排名 编辑:程序博客网 时间:2024/05/16 23:36

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

  1. 字符 二进制
  2. 01000001
  3. 01000010

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

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

  1. file -Car.java
  2. file -CarDriver.java

在 Linux 中查看文件的编码

在 Linux 中查看文件的编码

iconv 工具的使用方法如下:

  1. iconv option
  2. iconv options -from-encoding -t to-encoding inputfile(s) -o outputfile

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

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

  1. iconv -l

列出所有已有编码字符集

列出所有已有编码字符集

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

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

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

  1.    

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

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

  1. file -i input.file
  2. cat input.file
  3. iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
  4. cat out.file
  5. file -i out.file

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

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

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

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

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

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

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

  1. #!/bin/bash
  2. ### 将 values_here 替换为输入编码
  3. FROM_ENCODING="value_here"
  4. ### 输出编码 (UTF-8)
  5. TO_ENCODING="UTF-8"
  6. ### 转换命令
  7. CONVERT=" iconv -f $FROM_ENCODING -t $TO_ENCODING"
  8. ### 使用循环转换多个文件
  9. for file in *.txt; do
  10. $CONVERT "$file" -"${file%.txt}.utf8.converted"
  11. done
  12. exit 0

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

  1. chmod +x encoding.sh
  2. ./encoding.sh

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

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 运城旅游一卡通怎么办 没清卡被锁了怎么办 盗墓ol封号怎么办 公司分两派怎么办 居民区两派斗的话怎么办? 误入北派传销怎么办 黄体功能不足怎么办 sp02过低怎么办 sp02传感器脱落怎么办 体温过低怎么办 不能银联入金了怎么办 4岁泰迪牙掉了怎么办 四个月狗牙掉了怎么办 狗牙要掉了怎么办 小博美感冒了怎么办 博美犬太闹没办法打针怎么办 博美犬针没法打针怎么办 不排印怎么办 双目无神怎么办 眼睛无神怎么办 五月婴儿发烧怎么办 孕妇手心发热怎么办 更年期手脚发热怎么办 手脚心发热怎么办 掩手了怎么办 移植后睡不着怎么办 离婚不看孩子怎么办 没人照顾月子怎么办 kindle怎么死机怎么办 kindle跳页怎么办? kindle翻页混乱怎么办 kindle无法翻页怎么办 语文书不见了怎么办 高中英语看不懂怎么办 小红书买贵了怎么办 kindle越充越少怎么办 kindle卡住了怎么办 pdf字太小看不清怎么办 大学不让走读怎么办 pdf不能打印怎么办 webpdf加载失败怎么办