在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的过程