Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中特殊字符的转换_Php_String_Character Encoding - Fatal编程技术网

PHP中特殊字符的转换

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); 然而,这有时不起

我已经尝试了很多函数,但我就是搞不懂这个。无论如何,这是正确的方法

在一个名为description的表单字段中,可以使用各种字符。在将它们提交到数据库之前,需要将它们格式化为HTML实体

现在,我的代码:

$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');