XML文档中的奇怪字符

时间:2010-11-11 03:50:03

标签: php mysql xml firefox

我有一个奇怪的角色出现在我的RSS Feed上。在Firefox上,它看起来像一个盒子,每个角落有四个数字,在某些情况下,0 - 0 - 9 - 4,在其他0 - 0 - 9 - 2。

这些出现在智能引号的位置。

我对带有问号的黑色钻石很熟悉,但这是一个新的问题。

2 个答案:

答案 0 :(得分:3)

0-0-9-4表示该字符为0x0094,这是一个未分配的UTF-16字符。生成Feed的任何内容都是插入浏览器没有字体映射的字符,或者标题中指定的字符编码与流内容不匹配。

答案 1 :(得分:0)

啊,好的。你指出了我正确的方向。即将发生的是Windows实体。人们通过一系列复杂的步骤将东西放入我们的数据库中,从Word转换为InDesign,转换为GoLive(是的,这很痛苦)。

无论如何,数据库弹出的是这些实体,比如'’',这对于我认为是Windows的东西,但对我的浏览器来说,无论是ISO-8859-1还是UTF-8都是如此,所以没有多少改变我的页面编码可以解决这个废话。虽然,奇怪的是,它只是正确地出现在这里,所以我不知道我做错了什么。

所以无论如何,我通过在显示它之前通过这个php函数运行一切来修复它。

function fixChars($text){

    // Next, replace their Windows-1252 equivalents.
    $text = str_replace(
    array('‘', '’', '“', '”', '•', '—', '…'),
    array("'", "'", '"', '"', '-', '--', '...'),
    $text); 

    return $text;

}

所以,现在情况似乎很好。

感谢所有方向。