0

在下面的网页截图中,这是一些 UTF-8 文本,它在 Firefox 中完美显示,但在 Chrome 中 - 有一个框代替了空格。此外,如果我在 Chrome 中将缩放级别提高 1 - 问题就会消失。

如何用 PHP 修复它?

铬问题

火狐精

[更新]更多信息:

$s = utf8_to_unicode_code($desc);

for($i = 1; $i < 20; $i++) {
        echo $s[$i]."\n";
}

function utf8_to_unicode_code($utf8_string)
          {
              $expanded = iconv("UTF-8", "UTF-32", $utf8_string);
              return unpack("L*", $expanded);
          }

上面的代码输出:

-131072
1006632960
1644167168
1040187392
118030336
906559488
805896192
604569600
536870912
352911360
1191772160
940113920
536870912
973078528
536870912
671678464
805896192
1191772160
34144256

我们可以用它做任何扣除吗?

4

1 回答 1

0

你的第一个角色0xfffe0000顺序标记。显然它以某些字体/字体大小而不是其他字体显示。

要在输出之前将其从字符串中删除,例如,您可以检查此处的示例,该示例在字符串中检测到它并在必要时将其删除。

$bom = pack("CCC", 0xef, 0xbb, 0xbf);
if (0 == strncmp($str, $bom, 3)) {
    // echo "BOM detected - file is UTF-8\n";
    $str = substr($str, 3);
}
于 2013-06-28T07:50:38.110 回答