如何删除PHP字符串中的特殊字符?

时间:2012-12-06 16:00:49

标签: php character-encoding

我的输出为

FBI believed he had a ‘doomsday device’ 

而不是

FBI believed he had a ‘doomsday device’ 

当我使用时

iconv("UTF-8", "ISO-8859-1//IGNORE", $topic);

输出

FBI believed he had a âdoomsday deviceâ

我的文件中没有使用任何标题或字符集。

更新

知道为什么会发生这种情况

当UTF-8系列数字被解释为ISO-8859-1时输出为

一个€™

0xE28099分解为0xE2(â),0x80(€)和0x99(™)。当被误解为ISO-8859-1时,UTF-8(')中的一个字符错误地显示为三个(?)。

仍然没有转换它的解决方案

1 个答案:

答案 0 :(得分:2)

输出页面正在Windows-1252解释,而不是ISO-8859-1 ..

我建议将标题字符集设置为utf-8:

在apache config中:

AddDefaultCharset utf-8

php.ini中:

default_charset utf-8

手动填写php:

header("Content-Type: text/html; charset=utf-8");

如果由于一些奇怪的原因你不能做上述任何事情,那么你应该转换成Windows-1252:

iconv("UTF-8", "Windows-1252//IGNORE", $topic);