我正在尝试清理数据库输入并发现Ⓡ字符有问题.
Ⓡ转换为
Ⓡ
即使在变量周围有html_entity_decode.
这是一个问题,因为该字段仅用于允许数据库中的4个字符.
®实际上可以工作,并被视为单个字符.
我和Ⓒvs©有同样的问题.
据我所知他们只是html实体所以应该解码.但是它们甚至不用htmlspecialchars()编码.它只是回应了代码
Ⓡ
PHP有没有任何内置函数来解决这个问题?谢谢
编辑只是说我想做什么:
我有文本字段输入并添加到数据库中,该数据库显示在下表中.
当我输入任何其他字符,如< > &,它作为一个字符直接进入数据库. 我想让Ⓡ和Ⓒ总是作为一个角色进入(而不是6). 我只对表中的输出进行编码,因此某些字符不会破坏网站.
最佳答案 使用html_entity_decode时实体不解码的问题可能是给html_entity_decode的目标字符集仍然是默认的ISO-8859-1. ISO-8859-1不能编码“Ⓡ”(CIRCLED LETTER R),但它可以编码“®”(注册标记).
首先,要正确解码它:
html_entity_decode('Ⓡ', ENT_COMPAT, 'UTF-8')
但其次,“Ⓡ”和“®”不是同一个角色,你可能不想要“Ⓡ”.