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

PHP-渲染Â;在特殊字符前面-编码问题?,php,Php,从我以前的分支 在我的CMS(CQ5)中,我获取用ASCII编码输入的值。有时,输入的某些字符串包含特殊字符(即-版权>),当我在PHP中输出时,会在其前面插入一个奇数字符 我研究了如何将其编码为UTF-8,但这不起作用。我尝试了以下方法: //$title is the CMS input that contains special characters $strA = iconv('ASCII', 'UTF-8//IGNORE', $title); $strB = mb_convert_en

从我以前的分支

在我的CMS(CQ5)中,我获取用ASCII编码输入的值。有时,输入的某些字符串包含特殊字符(即-版权
>
),当我在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);

如果字符串包含版权符号,则它们不是ASCII

它们要么已经在UTF-8中,要么类似于ISO-8859-1。可以通过查看字符串的实际字节编码来确定是哪个

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

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

...

字符是由于发送UTF-8但不告诉接收者您已经发送了UTF-8而造成的常见假象。

听起来是UTF-8编码数据的典型特征,但客户端错误地将数据解释为ISO-8859-1。我如何解决此问题?我已经在每个HTML页面中有了以下meta标记:
那么数据可能是双重编码的。您当然不应该使用
utf8\u encode
。曾经读取和。当我检查输入的CMS字符串的编码时,它输出为ASCII<代码>变量转储(mb_检测_编码($title))我相信数据来自CMS->PHP(Symfony)->浏览器。可以在PHP级别转换字符串吗?我如何告诉接收者(我假设是web浏览器)它应该是UTF-8?在每个HTML文件的顶部,我都有一个标记:
。如果
mb\u detect\u encoding()
表示一个带有特殊
(C)
字符的字符串是ASCII字符,那么它就存在了。@icu222您的元标记大部分是正确的-我刚才显示的缩写是用于HTML5的。