在php中将特殊字符转换为html数字/名称,然后再次转换为特殊字符

在php中将特殊字符转换为html数字/名称,然后再次转换为特殊字符,php,mysql,json,special-characters,Php,Mysql,Json,Special Characters,我面临着在数据库中存储特殊字符并再次作为符号检索的问题 例如,我有一个字符串,如科特迪瓦 我想做的是将特殊字符转换为HTML数字ô或名称ô在检索时,我需要再次将HTML转换为特殊符号 我还需要将此字符串作为web服务的JSON响应传递 我尝试了一些php函数,如htmlspecialchars()和htmlspecialchars\u decode(),但没有得到所需的输出 任何帮助都将不胜感激。如果有任何其他方法可以做到这一点,那么它也将是非常有用的 提前感谢您在数据库中保存

我面临着在数据库中存储特殊字符并再次作为符号检索的问题

例如,我有一个字符串,如
科特迪瓦

我想做的是将特殊字符
转换为HTML数字
ô或名称
ô在检索时,我需要再次将HTML转换为特殊符号

我还需要将此字符串作为web服务的
JSON
响应传递

我尝试了一些
php
函数,如
htmlspecialchars()
htmlspecialchars\u decode()
,但没有得到所需的输出

任何帮助都将不胜感激。如果有任何其他方法可以做到这一点,那么它也将是非常有用的


提前感谢您

在数据库中保存数据和检索数据时使用“utf8\u unicode\u ci”进行排序。并检查数据库中是否保存了准确的数据。

当您对整个站点(包括数据库)使用UTF-8时,此问题更容易解决。逃逸应尽可能晚地完成,并且仅针对所需的目标系统

例如: 您的HTML页面是UTF-8编码的,您收到用户输入,您也会收到UTF-8格式的用户输入。此值可以按原样存储到数据库中,只需使用准备好的语句或在构建SQL字符串之前调用
mysqli\u real\u escape\u string()
。这会转义输入,只是为了确保SQL语句的安全,数据库将包含原始用户输入


当从数据库接收回值时,您将获得原始UTF-8输入,然后可以调用
htmlspecialchars()
将其转义以显示在HTML输出中。我写了一篇关于在那里使用的小文章,您可以找到更多信息。

您可以使用
htmlentities
函数来转换特殊字符

您必须将UTF8传递给
json\u encode
函数,以便在编码之前对数据使用
UTF8\u encode


如果该字符是unicode(UTF-8),则无需将其转换为HTML实体,因为unicode字符在JSON格式中有效。如果没有,则必须将其转换为unicode(UTF-8)以还原存在
html\u entity\u decode的过程