php - Jquery ajax post 将阿拉伯字符发送到 php 和 mysql 查询,例如

标签 php jquery mysql ajax utf-8

我尝试了在网络和 StackOverflow 上找到的许多解决方案,但就我而言,我无法解决问题。

我想澄清一下,所有 html/php 文件、数据库连接和元字符集都是 utf-8 编码的。

我通过 jQuery.ajax() 发送 post 数据,并通过 firebug 查看帖子消息的来源,阿拉伯字符串仅使用 jQuery.serialize() 发送,如下所示(或序列化数组())

hp-search=%D9%85%D9%84%D8%AD

在 php 文件中,我有一个简单的查询,例如,在将参数传递给数据库之前,我使用 urldecode($search_text) (rawurldecode)。

$sql = "SELECT * 
        FROM $db_table
        WHERE $cur_match LIKE '%".urldecode($search_text)."%'";

(我知道这段代码没有安全性,但现在我只需要做一些测试。)

在 phpmyadmin 中尝试查询,一切正常,但如果我将 $sql 字符串连接到 ajax 响应,我可以看到正确的查询

SELECT * FROM testdb WHERE t_ar LIKE '%ملح%'

我尝试了多种方法,但未能找到解决方案。

jquery 脚本和 php 可以很好地处理英文字符等。

我需要帮助:(

这是ajax调用代码

........

var serializedDataHP = $("#"+cur_form).serializeArray();

$.mobile.loading("show");

$.ajax({
    cache: false,
    type: "POST",
    //contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    url: "includes/custom.php?action=search",
    data: serializedDataHP,
    success: function(msg) {
        ........
    },
    error: function() {
        ........
    }
}); ........

谢谢

编辑

使用的jQuery:jquery-1.7.2.min.js(是否有与此版本相关的错误?)

var serializedDataHP = $("#"+cur_form).serialize();

PHP

urldecode($search_text)

在ajax响应中显示sql代码,我可以看到它是正确的,就像我上面写的那样,但它返回0行,在phpmyadmin中我获得5个结果。 通过ajax将阿拉伯语和非字符发送到php all utf8的正确方法是什么? TNx

最佳答案

你必须统一html页面中的字符编码:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

也尝试使用 json_decode() 函数

关于php - Jquery ajax post 将阿拉伯字符发送到 php 和 mysql 查询,例如,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715727/

相关文章:

mysql - 选择不同的行

php - mysql数据存储到数据库的问题

PHP 和 SQL : fetch_assoc/while loop goes infinite when displaying data

通过 ssh 隧道的 PhpStorm XDebug

javascript - jquery 检查选​​择框中是否未选择任何内容

android - 我们如何在sql数据库中使用android中的Join操作?

PHP cURL,使用 CURLOPT_RETURNTRANSFER 时内存泄漏

javascript - 避免对 post 方法进行硬编码解决方案

javascript - jquery 水平动画在 ipad 和平板电脑上失败

mysql - SQL查询增加多个项目的项目值(value)价格