2014-02-11 60 views
0

我已經嘗試了許多在網絡和StackOverflow上找到的解決方案,但在我的情況下,我無法解決問題。Jquery ajax後發送阿拉伯字符到PHP和MySQL查詢如

我想澄清一下,所有的html/php文件,數據庫連接和元字符集都是UTF-8編碼。

我通過jQuery.ajax(發送數據),看着由螢火後消息的源,該阿拉伯串被送至像下面僅使用jQuery.serialize()(或serializeArray())

HP-搜索=%D9%85%D9%84%D8%AD

在PHP文件我有一個簡單的查詢等,並且傳遞參數的分貝我是前使用urldecode($ search_text)(rawurldecode)。

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

(我知道有這個代碼沒有安全,但現在我必須做一些測試。)

試圖在phpMyAdmin查詢,一切工作正常,但如果我Concat的的$ 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所有utf8的正確方法? TNX

回答

0

我找到了解決辦法,問題是,主機託管服務提供商沒有告訴我MySQL服務器升級。 所以基本上我是連接到數據庫使用這些查詢

mysql_query("SET NAMES 'utf8'",$dbhandle); 

mysql_query("SET CHARSET 'utf8'",$dbhandle); 

然後使用此功能,而不是以前的

mysql_set_charset("utf8", $dbhandle); 

的我解決了這個問題。

0

,你必須統一在HTML頁面中的字符編碼:

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

也嘗試使用json_decode()函數

+0

QUOTE:「我想澄清一下,所有的html/php文件,與數據庫的連接和元字符集都是utf-8編碼的。」我已經使用 benzo