2010-01-24 32 views
3

hey mates。最近我用jQuery的自動完成標籤使用jquery自動完成標籤的utf-8問題

http://devthought.com/projects/jquery/textboxlist/

一切順利,除了UTF-8標籤表明,只有英文標籤建議

我猜出問題時臺詞 它正常工作與英語標籤,但不是多字節語言,如波斯

+1

你爲什麼逃避你的JavaScript代碼的單引號? – Gumbo 2010-01-24 13:06:38

+0

它像回聲「

1

你的HTTP標頭是錯誤的。它應該是:

header('Content-Type: application/json; charset=UTF-8'); 

您也可以縮短你的代碼,做與MySQL排序:

$sql = 'SELECT `tag` FROM `'.$prefix.'_tags` ORDER BY `tag`'; 
$result = $db->sql_query($sql); 
if (!$result) { 
    header($_SERVER['SERVER_PROTOCOL'].' 500 Internal Server Error'); 
    echo mysql_error(); 
    exit; 
} 

$response = array(); 
$i = 0; 
while ($row = $db->sql_fetchrow($result)) { 
    $response[] = array($i++, $row); 
} 
header('Content-Type: application/json; charset=UTF-8'); 
echo json_encode($response); 
+0

感謝縮短我的代碼,但我們的代碼不工作可言,也許ü不知道我的SQL語句組成部分。 但我的問題我怎麼能沒有做錯任何事沒有得到波斯(UTF-8)的標籤,只有英文的,它的這麼簡單! Ghazanfari 2010-01-24 13:31:29

+0

@farshad Ghazanfari:哪裏是你的標籤篩選呢?你在哪裏包含用戶的輸入? – Gumbo 2010-01-24 13:36:47

+0

我寫了一個類,然後將其添加到我的形式, 我沒有任何過濾器添加到標記從SQL只是閱讀並...... 我們可以用不同的方法,而不是使用JSON的? – Ghazanfari 2010-01-24 14:03:20

1

您的Content-Type頭是有些不對的。首先,它應該是content-type:something; charset=something,即content-type:text/html; charset=utf-8

但它實際上是建議使用內容類型application/json,看到這裏What is the correct JSON content type?

所以,你可以做這樣的

header("Content-Type:application/json; charset=UTF-8"); 
+0

嘿謝謝,我確實使用過這個頭文件,但沒有任何工作,然後我改變了類型,呃im im累了,我找不到bug – Ghazanfari 2010-01-24 13:29:12

1

大概線215在TextboxList.Autocomplete.js是歸咎於:

if (regexp.test(values[i][1])) newvals.push(values[i]); 

隱蔽它

if (values[i][1].indexOf(escapeRegExp(search)) != -1) newvals.push(values[i]); 

Bobince(第一應答)右,問題是在線路212,但解決它可以在線路215