2011-09-22 187 views
4

我要問簡單的問題,是JSON支持阿拉伯字符我的意思是,當我搜索類似以下json是否支持阿拉伯字符?

$values = $database->get_by_name('معاً'); 
echo json_encode(array('returnedFromValue' => $value."<br/>")); 

也是我從數據庫中尋找阿拉伯語結果,返回的值將是這樣的

{"returnedFromValue":"\u0627\u0644\u0645\u0639\u0627\u062f\u0649<br\/>"}{"returnedFromValue":"\u0627\u0644\u0645\u0639\u0627\u062f\u0649<br\/>"} 

我在這裏錯過了什麼?在支持阿拉伯字符方面使用XML更好嗎?

回答

1

JSON就像XML一樣,是某種數據交換格式。它不會沉迷於特殊的字符集,所以如果你使用支持這些字符的字符集(例如UFT-8),阿拉伯字符應該沒問題。

+1

JSON規範規定「JSON文本應採用Unicode編碼,默認編碼爲UTF-8」,因此它對少數字符集「上癮」。 – Quentin

0

這些\u0627-數字是您的阿拉伯字母的Unicode碼位。 PHP使用它們而不是原始的UTF-8序列化,但他們在那裏。所以是的,JSON確實支持它。如果結果字符串是打印出來的客戶端(使用Javascript),你會再次看到字母。

2

PHP 5.4.0將支持json_encode()的一個特殊選項,稱爲JSON_UNESCAPED_UNICODE。這會停止將字符轉換爲\uXXXX表單的默認行爲。

$value = 'معاً'; 
echo json_encode($value, JSON_UNESCAPED_UNICODE); 
// Outputs: "معاً"