繁体   English   中英

在PHP中转换特殊字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM