将UTF-8字符序列转换为实际的UTF-8字节

时间:2012-10-01 06:51:29

标签: encoding utf-8 iconv

我有一个包含UTF-8字符序列的纯文本文件(.yml),如下所示:

foo:“Dette er en \ xC3 \ xB8”

问题在于\ xC3 \ xB8 - 这些不是“真正的”UTF-8字节,因为它们作为8个实际字符保存在文本文件中:\ x C 3 \ x B 8

有没有办法将这些转换为真正的2字节UTF-8序列?

可以使用任何OS / Language / Shell工具: - )

/ Carsten

1 个答案:

答案 0 :(得分:2)

使用此perl脚本转换文件:

#!/usr/bin/perl
while (<STDIN>) {
  $_ =~ s/\\x([0-9A-F][0-9A-F])/chr(hex($1))/eg;
  print $_;
}

假设您将脚本命名为bogusutf,然后使用此命令进行转换:

  

$ perl bogusutf &lt; inputfile&gt; outputfile