Javascript `$(';#form';).serialize()`将UTF-8字符弄乱
我使用AJAX插入表单,并使用:Javascript `$(';#form';).serialize()`将UTF-8字符弄乱,javascript,encoding,Javascript,Encoding,我使用AJAX插入表单,并使用:$(“#form”).serialize()获取所有输入并将其发送到insert.php 问题是像á这样的字符会变成%A9等等 如何在发送之前防止这种情况发生,或者如何在通过$\u POST检索时获得正确的字符,以便将其正确插入数据库 编辑----- 顺便说一句:没有AJAX的相同表单,只需将action=“POST”正确插入相同的insert.php,因此问题只在于serialize()弄乱了HTML。Jqueryserialize()序列化为UTF-8。因此á
$(“#form”).serialize()
获取所有输入并将其发送到insert.php
问题是像á
这样的字符会变成%A9
等等
如何在发送之前防止这种情况发生,或者如何在通过$\u POST检索时获得正确的字符,以便将其正确插入数据库
编辑-----
顺便说一句:没有AJAX的相同表单,只需将action=“POST”正确插入相同的insert.php,因此问题只在于serialize()弄乱了HTML。Jquery
serialize()
序列化为UTF-8。因此á
成为正确的UTF-8编码%c3%a1
。尝试使用$\u请求
,因为它已经按照php文档进行了解码 您需要做的最后一步是在PHP文件中解码,如下所示:
$usuario=utf8_解码($_POST['nombre'])
在将数据发送到数据库之前,我使用utf8_decode()与htmlspecialchars()组合:
$nombres=utf8_解码(htmlspecialchars($_POST['nombres']) 不,我现在正在读有关它的书。我真的不知道如何应用它,顺便说一句,我可以很容易地将东西插入数据库。唯一的问题似乎是当我使用函数.serialize()时,但除非我停止使用AJAX,否则我实际上没有任何其他方法插入数据库。
urldecode($\u POST['data'])
在插入数据库之前为我解决了这个问题!