将¤转换为Umlaut

时间:2015-07-20 16:30:26

标签: php xpath encoding utf-8 character-encoding

我正在通过xpath解析文档并从元标记中获取信息。 我正在通过utf8_decode( $metadesc )传递这个字符串,但仍然没有正常的变音符号。该文件是UTF-8。

我想将Ã&#xA4转换为ä

我正在通过firebug中的控制台进行调试,并将数据也写入数据库。 在这两种情况下,我得到相同的结果。 对于Div中的文本,它可以工作。只有那个metatag是错误的。

非常感谢

1 个答案:

答案 0 :(得分:1)

嗯,xC3A4确实是Unicode字符xE4的UTF-8编码,它是ä。但在XML中,序列ä代表了一些完全不同的东西:它代表“具有代字号的资本A”,后面跟着“货币符号”(即ä)。如果您使用XML解析器,您将看到这两个字符,并且您不会得到任何迹象表明它们是以十六进制字符引用开始的。

如果可能,您应该尝试修复生成的程序这种不正确的角色编码:这比以后修复损坏要好得多。

如果你想通过“修复”操作来做,你需要考虑到序列¤实际上可能代表XML所代表的两个字符:你将如何区分它?我不知道任何PHP,但基本上这样做的方法是提取十六进制值xC3A4,然后通过UTF-8解码。