1

我正在使用 pbkdf2(),我需要打印它的输出来调试错误。它会生成奇怪的字符串,例如“�O�BIa���!J��”。

htmlentities() 或 htmlSpecialChars() 都无法将这些字符转换为更易读的字符。

我正在考虑将它们转换为 UTF-8 实体,例如激,看看浏览器是否会以这种方式更好地呈现它们。如果没有,我宁愿看到他们的 UTF-8 数字而不是这些字符。

我单独尝试了 utf8_encode() 和 utf8_decode(),并与 htmlentities() 和 htmlSpecialChars() 结合使用。一点运气都没有。

知道可以做什么吗?

4

1 回答 1

2

试试这个功能:

function convert_smart_quotes($string)
{
$string = htmlentities($string);
$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8');
$string = htmlspecialchars_decode(utf8_decode(htmlentities($string, ENT_COMPAT, 'utf-8', false)));

$s = array(
    chr(145) => "'",
    chr(146) => "'",
    chr(147) => '"',
    chr(148) => '"',
    chr(151) => '-',
    's©' => '©',
    '®' => '®',
    '™' => '™', //™
    '“' => '"', // left side double smart quote
    'â€' => '"', // right side double smart quote
    '‘' => "'", // left side single smart quote
    '’' => "'", // right side single smart quote
    '…' => '...', // elipsis
    '—' => '-', // em dash
    '–' => '-', // en dash
);

return strtr($string, $s);
}
于 2013-04-05T16:03:24.443 回答