我输入的一些文本包括几个向上和向下箭头(↑和↓),以及一个加号/减号(±)。
这些特殊字符以HTML:↑ ↓ ±的形式输入。在POST时,HTML在被保存到MySQL表之前使用htmlentities进行处理。
$data = htmlentities($data,ENT_QUOTES);请务必注意,向上和向下箭头符号不会转换为黑色箭头。在POSTing数据之后,然后返回到编辑相同的文本-我在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就不行呢?
发布于 2012-11-15 23:54:28
如果您仍然在交付给您的浏览器的源代码中看到±,但是显示了一个<?>,那么这可能是您的浏览器的问题。检查您的字符编码设置为什么。
编辑:就像mario评论的那样,也可能是这个字符在你使用的字体中不存在。
https://stackoverflow.com/questions/13401068
复制相似问题