[英]Conversion of special characters in PHP
我已经尝试了很多功能,但我根本无法解决这个问题。 无论如何,正确的方式。
在名为description的表单字段中,我可以期待各种字符。 这些需要在提交给数据库之前格式化为HTML实体。
现在,我的代码:
$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES);
对于MySQL查询,我只需添加一个“安全”函数来削减'off the string:
mysql_real_escape_string($formdesc);
但是,这有时不起作用。 例如,“é”变成了é而不是é。
必须有一个正常的功能。 有谁知道我的意思?
您需要指定htmlentities
函数的编码(此处为UTF-8):
$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES, 'UTF-8');
否则使用默认值ISO-8859-1
,并且以UTF-8编码为0xC3A9的示例中的字符é
将被解释为两个字符( Ã
和©
)。
但是你为什么htmlentities
使用htmlentities
呢? 如果你只是想要转义HTML特殊字符,如&
, <
, >
, "
和'
htmlspecialchars
就足够了。
你有没有尝试过看htmlspecialchars()和htmlspecialchars_decode()
玩笑
看起来像通常的PHP转义函数不适用于utf-8文本。 也许在JavaScript,PHP和非UTF8数据库中处理UTF-8会对您有所帮助。 关于utf-8和PHP的另一个来源是PHP UTF-8备忘单 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.