搜尋

首頁  >  問答  >  主體

php 碰到一個中文亂碼引起的神奇的問題

比如

$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)

這是為什麼啊 我想直接拿變數 但現在遇到這個問題,求解答,謝謝

大家讲道理大家讲道理2763 天前961

全部回覆(2)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-31 10:35:23

    雷雷

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-31 10:35:23

    兩個變數不一樣,雖然都是字串,但是長度一個24,一個22,第二個很明顯不是UTF8編碼,json_encode當然會錯誤。

    你可以先偵測下字串編碼,mb_detect_encoding,然後再轉換成UTF8,mb_convert_encoding

    回覆
    0
  • 取消回覆