PHP5.4 未満の json_encode 中国語 UNICODE トランスコーディングの問題を解決する
最初に中国語の文字を Urlencode し、次に json_encode を使用します。json_encode
の後で、もう一度 urldecode を使用してデコードし、
エンコードされた json 配列内の中国語の文字が Unicode エンコードされないようにします。
$params['importList']['recipientAddress'] = urlencode("江苏省苏州市昆山市");
$params['importList']['salePrice'] = 245.0;
$params['importList']['salesModel'] = urlencode("内贸模式");
$params['importList']['shopNumber'] = "kd";
$params['importList']['totalAmount'] = 0.0;
var_dump($params);
//直接转码就会变成汉字就会变成\u****
var_dump(json_encode($params));
// 5.4以上加 JSON_UNESCAPED_UNICODE 可解决
//var_dump(json_encode($params, JSON_UNESCAPED_UNICODE));
// 5.4以下 先把汉字用url编码,转为json后在用url解码,完美避开看字转unicode的问题
var_dump(urldecode(json_encode($params)));