php - PHP中特殊字符的转换

标签 php string character-encoding

我已经尝试了很多功能,但我就是想不通。无论如何,正确的方法。

在一个叫做描述的表单字段中,我可以期待各种字符。在将它们提交给数据库之前,需要将它们格式化为 HTML 实体。

现在,我的代码:

$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES);

对于 MySQL 查询,我只是添加了一个“安全”函数来将字符串中的 ' 斜杠掉:

mysql_real_escape_string($formdesc);

但是,这有时不起作用。例如,“é”变成了 É 而不是 é。

这必须有一个正常的功能。有谁知道我的意思吗?

最佳答案

您需要为 htmlentities function 指定编码(此处为 UTF-8):

$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES, 'UTF-8');

否则默认值ISO-8859-1使用了字符 é在您以 UTF-8 编码的示例中, 0xC3A9 将被解释为两个字符( é )。

但是为什么要用htmlentities反正?如果您只想转义 HTML 特殊字符,如 & , < , > , "' htmlspecialchars 就足够了。

关于php - PHP中特殊字符的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062181/

相关文章:

php - PHP通过MySQL显示特定图片的方法

php - MYSQL 使用 OR 进行查询

javascript - 这个数组理解正确吗?

json - swift : Wrong character in String

Java char/int 转换困惑

php - 在准备好的 PDO mysql 查询中将数组与单个元素结合使用

php - 需要有关通过 PHP 将 SQL 导出为 CSV 的帮助

Java 关键字子串

c++ - 计算文件中的偶数行数

java - 奇怪的 unicode 字符导致 XML 解析失败