PHP:如何响应印地语的json编码
我正在使用翻译API,但这里有一个问题。我使用JSON作为响应,当我对印地语进行JSON_编码时,输出类似“\u092f\u0939\u0915\u093e\u0930\u0939\u0948” 我的代码如下PHP:如何响应印地语的json编码,php,json,hindi,Php,Json,Hindi,我正在使用翻译API,但这里有一个问题。我使用JSON作为响应,当我对印地语进行JSON_编码时,输出类似“\u092f\u0939\u0915\u093e\u0930\u0939\u0948” 我的代码如下 $data = array(); $data['hindi'] = 'यह कार है'; $data['english'] = 'This is car'; echo json_encode($data); die; 答案是 {"hindi":"\u092f\u0939 \u0915
$data = array();
$data['hindi'] = 'यह कार है';
$data['english'] = 'This is car';
echo json_encode($data); die;
答案是
{"hindi":"\u092f\u0939 \u0915\u093e\u0930 \u0939\u0948","english":"This is car"}
原因可能是这些字符不在UTF-8中(至少我找不到它们): 所有字符串数据必须采用UTF-8编码
这意味着它必须将其转换为字符的“描述”。别担心,如果你再次解码,它很可能是正确的 如果您运行的是PHP5.4或更高版本,则在调用
JSON\u encode
例如:
$data = array();
$data['hindi'] = 'यह कार है';
$data['english'] = 'This is car';
echo json_encode($data, JSON_UNESCAPED_UNICODE);
die;
这是正确的json,当您在浏览器中显示和/或解析它时,它将生成具有正确键和值的对象:
var json_string='{“印地语”:“\u092f\u0939\u0915\u093e\u0930\u0939\u0948”,“英语”:“这是汽车”},
json=json.parse(json_字符串);
//或直接:
var json2={“印地语”:“\u092f\u0939\u0915\u093e\u0930\u0939\u0948”,“英语”:“这是汽车”};
log(json_字符串);
log(json);
log(json2);
document.write(json_字符串);
文件。写(“
”);
document.write(json.hindi);
文件。写(“
”);
书面文件(json2.hindi)代码>我有一个解决这个问题的方法。这对我来说很好
$data = array();
$data['hindi'] = base64_encode('यह कार है');
$data['english'] = 'This is car';
$encoded_text=json_encode($data);
要检索数据的印地语部分,请执行以下操作:
$hindi=base64_decode(json_decode($encoded_text)->hindi);
但是,根据您希望在何处使用JSON,不转义字符可能会导致问题。如果他只在本地使用,只需再次解码json就会返回原始文本。好的,但现在响应不是json,而是只显示字符串