比如
$data = '百度�騰訊,阿里';
$data1 // 是一個變數 印出來就是 '百度�騰訊,阿里'
var_dump($data);
var_dump($data1);
列印結果:
$data:string(24) "百度�騰訊,阿里"
$data1:string(22) "百度�騰訊,阿里"
$keywordsData = json_encode($data, JSON_UNESCAPED_UNICODE);
$keywordsData1 = json_encode($data1, JSON_UNESCAPED_UNICODE);
var_dump($keywordsData);##var_dump
var_d1($keysDatasData;
keywordsData:string(26) ""百度�騰訊,阿里""
keywordsData1:bool(false)
習慣沉默2017-05-31 10:35:23
兩個變數不一樣,雖然都是字串,但是長度一個24,一個22,第二個很明顯不是UTF8編碼,json_encode
當然會錯誤。
你可以先偵測下字串編碼,mb_detect_encoding
,然後再轉換成UTF8,mb_convert_encoding
。