2013-04-05 3 views
1

Я использую pbkdf2(), и мне нужно распечатать его вывод, чтобы отладить ошибку. он генерирует странную строку типа « O BIa ! J ».Преобразование дурацких символов в UTF-8 код

Ни htmlentities(), ни htmlSpecialChars() не могут преобразовать эти символы в нечто более читаемое.

Я думал о преобразовании их в объекты UTF-8, например 激, и посмотреть, улучшит ли браузер их таким образом. Если нет, я бы предпочел видеть их номер UTF-8, чем эти символы.

Я пробовал utf8_encode() и utf8_decode(), один и в сочетании с htmlentities() и htmlSpecialChars(). Не повезло.

любая идея, что можно сделать?

+0

Где вы получаете orignial строку из и что исходное представление? – Esailija

ответ

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); 
}