PHP - 在特殊字符前面渲染 - 编码问题?

时间:2013-03-02 21:47:45

标签: php

从我之前的question分支。

在我的CMS(CQ5)中,我抓取使用ASCII编码输入的值。有时输入的这些字符串中的一些包含特殊字符(即 - copyright ®)当我在PHP中输出时,将在其前面插入奇数字符Â

我考虑将其编码为UTF-8,但这不起作用。我尝试过以下方法:

//$title is the CMS input that contains special characters
$strA = iconv('ASCII', 'UTF-8//IGNORE', $title);
$strB = mb_convert_encoding($title, "UTF-8");
$strC = utf8_encode($title);

1 个答案:

答案 0 :(得分:1)

如果您的字符串包含版权符号,那么它们不是ASCII!

他们要么已经是UTF-8,要么是ISO-8859-1。通过查看字符串的实际字节编码,可以找出哪一个。

您还必须确保您的CMS生成正确的HTML字符集标记,以便用户浏览器知道正在使用哪个字符集,即

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>

Â字符是发送UTF-8引起的常见假象,但没有告诉接收者您已经这样做了。