通过AJAX发送Form textarea时,encodeURIComponent()和UTF-8

时间:2012-08-17 20:20:42

标签: php ajax post utf-8 encodeuricomponent

通过AJAX 方法POST将数据发送到PHP后端文件。数据来自textarea,其形式具有下一个属性accept-charset="UTF-8"。 AJAX函数将数据发送为http[act].send("title=" + encodeURIComponent(field.value)...),我的PHP后端文件以header('Content-Type:text/html; charset=UTF-8');开头。数据库接受名称和字段都设置为UTF-8(从未遇到过这些问题)。

我想我应该在PHP后端解码encodeURIComponent() func。但是如何?

编辑(抱歉):

Fibradietética作为fibra dietética插入数据库 Acompañada插入Acompañada

......等等。

3 个答案:

答案 0 :(得分:0)

使用rawurldecode($value)请参阅此处http://www.php.net/manual/en/function.rawurldecode.php

答案 1 :(得分:0)

错误。在执行INSERT之前,我在字符串上使用htmlentities() (PHP)。一个很好的选择是使用strip_tags() (PHP)来避免“ HTML / Js / ... injection ”。感谢大家的帮助。我希望这对某人有用。

答案 2 :(得分:0)

和平缔造者是对的 在Ajax中,使用

encodeURIComponent()

然后在php中,使用

rawurldecode()

实施例 在Ajax中

abc=encodeURIComponent(xxx)

然后在php中,

$varName = rawurldecode($_POST['abc'])