php – 转换符号(版权,注册等)

我正在尝试清理数据库输入并发现Ⓡ字符有问题.

Ⓡ转换为

Ⓡ

即使在变量周围有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('&#9415;', ENT_COMPAT, 'UTF-8')

但其次,“Ⓡ”和“®”不是同一个角色,你可能不想要“Ⓡ”.

点赞