如何读取包含UTF-8十六进制编码字符的文件,然后将字符解码为HTML十六进制数字?

时间:2011-01-18 12:59:31

标签: html perl unicode utf-8 hex

我有一个包含UTF-8十六进制编码字符的文件,如下所示:

<root>
<element>1 \xc3\x97 2 = 2</element>
</root>

我想读取文件并将所有\xhh个字符转换为等效的HTML十六进制数字,然后写入新文件。因此,给定具有上述内容的文件,新文件必须如下所示:

<root>
<element>1 &#xd7; 2 = 2</element>
</root>

谢谢!

1 个答案:

答案 0 :(得分:2)

假设您在输入流上使用了:utf8,那么这将修复数据:

s/([^\x00-\x7F])/sprintf "&#x%x;", ord $1/ge;