2011-09-22 122 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: "معاً"