0

我正在编写一个函数来清除带有或不带有 ut8 字符的文本。

我不断收到这样的文字。

Coventry Salary - �25,000 - �35,000 

但是使用此功能,它会删除�但留下其他。

我想知道是否有人编写了一个清理文本的函数。

function convertHTMLSpecialChars ( $str='' ) 
{
    $str = htmlspecialchars ( $str );
    $str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
    $str = htmlspecialchars($str, ENT_NOQUOTES, 'UTF-8');
    return $str;
}
4

2 回答 2

1

确保服务器将您的页面输出为 UTF-8。

您可以通过使用强制它:

header ('Content-type: text/html; charset=utf-8');
于 2012-06-05T12:24:36.877 回答
1

这个功能:

$str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));

只是tries为了检测字符集$str; 如果它发现 $str 包含 utf8 字符,它将返回“utf8”,因此 func 实际上是:

$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8');

这没有多大帮助..在我看来,您应该手动提供字符串的字符集。例如,如果它的土耳其语: iso-8859-5,如果它的希腊语: iso-8859-7等等..

于 2012-06-05T12:25:31.213 回答