新疆seo原創(chuàng),轉(zhuǎn)載請注明出處;
在寫一個項目的時候遇到的問題 項目編碼是gbk的
在json_encode 一個數(shù)組的時候返回空白,郁悶了很久
后來在簡化數(shù)組進行測試時發(fā)現(xiàn)如果數(shù)組中存在字符串則json_encode 返回false
后來百度之后才知道 json_encode 只能轉(zhuǎn)碼 utf-8的 字符串 如果有g(shù)bk的字符串的話就返回false
找到問題了就該解決了,獲取字符串的編碼進行轉(zhuǎn)碼然后再json_encode 搞定
下面貼代碼
一、檢測當(dāng)前字符串編碼并將編碼改為utf-8 1 獲取當(dāng)前字符串的編碼 $encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); 2 將字符編碼改為utf-8 $str_encode = mb_convert_encoding($str, 'UTF-8', $encode); 二、函數(shù)詳解 1 mb_detect_encoding — 檢測字符的編碼 說明 string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] ) 檢測字符串 str 的編碼。 參數(shù) str 待檢查的字符串。 encoding_list encoding_list 是一個字符編碼列表。 編碼順序可以由數(shù)組或者逗號分隔的列表字符串指定。 如果省略了 encoding_list 將會使用 detect_order。 strict strict 指定了是否嚴格地檢測編碼。 默認是 FALSE。 返回值 檢測到的字符編碼,或者無法檢測指定字符串的編碼時返回 FALSE。 2 mb_convert_encoding — 轉(zhuǎn)換字符的編碼 說明 string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] ) 將 string 類型 str 的字符編碼從可選的 from_encoding 轉(zhuǎn)換到 to_encoding。 參數(shù) str 要編碼的 string。 to_encoding str 要轉(zhuǎn)換成的編碼類型。 from_encoding 在轉(zhuǎn)換前通過字符代碼名稱來指定。它可以是一個 array 也可以是逗號分隔的枚舉列表。 如果沒有提供 from_encoding,則會使用內(nèi)部(internal)編碼。 參見支持的編碼。 返回值 編碼后的 string。