±(加/减字符)转换为黑色问号

时间:2012-11-15 15:46:01

标签: php html ascii special-characters

我输入的一些文字包括几个向上和向下箭头(↑和↓),以及加号/减号(±)。

这些特殊字符以HTML ASCII格式输入:↑ ↓ ±。在POST时,HTML会在保存到MySQL表之前使用htmlentities进行处理。

$data   = htmlentities($data,ENT_QUOTES);

请务必注意,向上和向下箭头符号不会转换为黑色箭头。发布数据后,然后返回编辑相同的文本 - 我在HTML源代码中看到了↑↓。只有±被转换为黑色问号。

检查MySQL中保存的文本确认所有三个符号都存储如下(在应用htmlentites之后):↑ ↓±

PHP应用程序然后使用unhtmlentities($ data)[下面]将实体转换回符号。这适用于↑↓。这是我失去的地方±

unhtmlentities:

function unhtmlentities ($string) {
    // Restores HTML code to inserted data
    // use when pulling from Database
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
    // $c = unhtmlentities($a);
}

为什么这对uarr和darr工作正常,但不能用plusmn?

1 个答案:

答案 0 :(得分:1)

如果您仍然在浏览器中看到&plusmn;,但显示的是 <?> ,则可能是您浏览器的错误。检查您的字符编码设置为什么。

编辑:就像马里奥评论的那样,也可能就是你正在使用的字体中不存在该字符。