我已经在 php 文件中编码了波斯语名称。在编码之前,它显示正确,在编码之后,它将转换为utf-8字符。
我正在Ajax的Java脚本(jQuery)中收到它。
sample.php:
json_encode('نام خانوادگی ');
//after encode: "\u06a9\u0627\u0638\u0645\u06a9\u06cc"
Js:
JSON.parse(response)
// it is still in this form: \u06a9\u0627\u0638\u0645 \u06a9\u06cc
我如何解析此json,以便可以将其保留为原始格式?
最佳答案
这与UTF-8无关,但与Unicode无关。区别在于:
var original = "\u06a9\u0627\u0638\u0645\u06a9\u06cc"
var encoded = "\\u06a9\\u0627\\u0638\\u0645\\u06a9\\u06cc"
您必须将表示Unicode表示法的字符串转换回原始字符串。用这个:
var r = encoded.replace(/\\u(....)/gi, function(m,v){
return String.fromCharCode(parseInt(v,16))
})
alert(r)