2011-04-23 97 views
0

我有一個字符串,我試圖發送到我的服務器代碼。我在數據中獲得了很多這些字符 - 。我需要序列化數據還是什麼?我正在使用utf-8編碼,但沒有解決它。我認爲我的數據在JQuery方面發生了一些事情。我該如何解決?ascii字符在我的字符串

這是我的JQ的樣子。

var id = $('#id').val(); 
var dataString = 'id='+ id; 
$.ajax({ 
    type: "POST", 
    url: "http...", 
    data: dataString, 
    dataType: 'json', 
    success: function(data) { 
    ... 

下面是一個簡單的字符串: `%CA 32d的?

那麼這個字符串變成�32d?使用UTF-8和Ê32d?與ISO-8859-1


編輯: 我注意到,當字符串以%ca開始這個編碼問題只發生。所有其他人似乎按預期工作。

+0

你能給一個字符串的例子嗎?它可以是任何東西,不管它是一個unicode字符還是一個不能以任何字體顯示的字符。 – MacAnthony 2011-04-23 23:42:12

+1

我刪除了我的答案,因爲那可能不是。問題在於你的數據編碼是什麼 - 只是改變PHP頭文件是不夠的。你絕對應該在這裏展示一個例子,也許還有一些代碼。如果對事物進行雙重編碼,例如對已經編碼爲UTF8的數據調用'utf8_encode()',也會發生這種情況。 – 2011-04-23 23:47:48

+0

好的,會在 – jim 2011-04-23 23:49:10

回答

0

%HTTP協議中的xx是一種編碼字符,即使您不想,服務器也會爲您解碼。你應該在發送之前對你的字符串進行編碼,或者用%25替換每個%,這是編碼的%。這與\字符的概念相同。如果在字符串中有\ n,引擎會將其解釋爲換行符,即使n例如是單詞的一部分。

希望有所幫助。