PHP转换?人物

时间:2015-04-08 06:25:41

标签: php encoding character-encoding

每当我使用某些独特字符(例如™)时,页面都会输出此符号:

question mark

如何转换这些字符以便在页面上正常显示?

我目前正在使用这个PHP,但它删除了字符而不是将它们转换为可以正常显示的字符:

function convert_to($str, $target_encoding = "UTF-8") {
    $encoding = mb_detect_encoding($str, "auto");
    $target = str_replace("?", "[question_mark]", $str);
    $target = mb_convert_encoding( $target, $target_encoding, $encoding);
    $target = str_replace("?", "", $target);
    $target = str_replace("[question_mark]", "?", $target);
    return $target;
}

2 个答案:

答案 0 :(得分:2)

那个"问号字符"实际上是一个不可读的UTF-8角色。您需要将原始™字符更改为™或调整PHP服务器的编码选项。这是另一篇讨论类似问题的帖子:Convert any string to UTF-8

答案 1 :(得分:1)

echo htmlentities($str, ENT_QUOTES, 'UTF-8');

使用htmlentities