我正在使用多语言(亚洲语言)网站,并面临着奇怪的问题。我有一个函数,返回包裹在json_encode中的字符串。
我正在使用 codeigniter ,我已经设置了
$ db ['default'] ['char_set'] ='utf8';
$ db ['default'] ['dbcollat'] ='utf8_general_ci';
如果我直接打印输出,那么它会正确显示中文,阿拉伯语,泰语字符串,这意味着我已正确编码我的网页和php以打印多语言字符串,但如果我通过以下方式获取该字符串ajax并使用json_encode打印'??????'
到目前为止,我试过
mb_convert_encoding($ reviewsui,'ISO-8859-1','UTF-8');
但到目前为止没有任何工作。我错过了什么吗?
修改 我甚至尝试通过 utf8_encode()传递该字符串,甚至没有解决我的问题。我看到的唯一区别是“????”我看到“समाà¤à¤ªà¤°”。
答案 0 :(得分:0)
json_encode
要求数据中的字符串编码为UTF-8.
如果它们尚未转换为UTF-8
,请将它们转换为下面的示例
$results = array_map(function($r) {
$r['text'] = utf8_encode($r['text']);
return $r;
}, $results);
echo json_encode($results);