3

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

这些特殊字符作为 HTML ASCII 输入:↑ ↓ ±. 在 POST 上,HTML 在保存到 MySQL 表之前使用 htmlentities 进行处理。

$data   = htmlentities($data,ENT_QUOTES);

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

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

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

非实体:

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?

4

1 回答 1

1

如果您仍然&plusmn;在发送到浏览器的源中看到,但<?>显示了 a,那么很可能是您的浏览器的故障。检查您的字符编码设置为。

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

于 2012-11-15T15:54:27.640 回答