我正在写一个从数据库源中提取的php程序。某些varchar的引号显示为带有问号的黑色菱形(…,REPLACEMENT CHARACTER,我从Microsoft Word文本假定)。
如何使用php去除这些字符?
如果看到该字符(U + FFFD“ REPLACEMENT CHARACTER”),则通常意味着文本本身以某种形式的单字节编码进行编码,但以一种Unicode编码(UTF8或UTF16)进行解释。
如果相反,它通常会看起来像这样:¤。
原始编码可能是ISO-8859-1,也称为Latin-1。您可以在无需更改脚本的情况下进行检查:浏览器为您提供了以不同编码重新解释页面的选项-在Firefox中,使用“查看”->“字符编码”。
为了使浏览器使用正确的编码,请添加一个HTTP标头,如下所示:
header("Content-Type: text/html; charset=ISO-8859-1");
或将编码放入meta标签中:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
或者,您可以尝试以其他编码方式(最好是UTF-8)从数据库中读取数据,或使用转换文本iconv()。