PHP中特殊字符的转换
我已经尝试了很多函数,但我就是搞不懂这个。无论如何,这是正确的方法 在一个名为description的表单字段中,可以使用各种字符。在将它们提交到数据库之前,需要将它们格式化为HTML实体 现在,我的代码:PHP中特殊字符的转换,php,string,character-encoding,Php,String,Character Encoding,我已经尝试了很多函数,但我就是搞不懂这个。无论如何,这是正确的方法 在一个名为description的表单字段中,可以使用各种字符。在将它们提交到数据库之前,需要将它们格式化为HTML实体 现在,我的代码: $formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES); 对于MySQL查询,我只需添加一个“safe”函数来删除字符串中的“safe”: mysql_real_escape_string($formdesc); 然而,这有时不起
$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES);
对于MySQL查询,我只需添加一个“safe”函数来删除字符串中的“safe”:
mysql_real_escape_string($formdesc);
然而,这有时不起作用。例如,“é”变成了é而不是é
这必须有一个正常的功能。有人知道我的意思吗?您需要指定的编码(此处为UTF-8): 否则,将使用默认值
ISO-8859-1
,示例中以UTF-8编码为0xC3A9的字符é
将被解释为两个字符(Ã
和)
)
但你为什么要使用htmlentities
?如果您只想转义HTML特殊字符,如&
,
,“
和”,
就足够了。您试过查看和
Josh看起来普通的PHP转义函数在utf-8文本上不起作用。也许会对您有所帮助。关于utf-8和PHP的另一个来源是。这不是与数据库的语言设置有关吗?是的,这似乎是一个unicode问题。一般来说,尝试对数据库和前端都使用utf8。是的,我忘记了utf-8编码我的字符串时的编码设置:)thx!很有效!!duh,很简单…但是thx!btw>为什么>,这样看起来更安全,是不是我错了?如果无法使用您使用的编码对字符进行编码,您只需用字符引用替换其他字符。但是由于Unicode包含任何已知字符,并且UTF-8可以对其进行编码,您不需要“除了HTML的特殊字符之外,不需要替换任何其他字符。thx,是的,我已经尝试过了,但我想进行é;翻译。htmlspecialchars()只做&、”,等等,对吗?谢谢您的评论,但我现在已经开始工作了。我忘了utf-8标签是的,谢谢!不客气。我看秋波的回答正是让这一切顺利进行的正确方法。
$formdesc = htmlentities($_POST['formdesc'], ENT_QUOTES, 'UTF-8');