예를 들어
$data = '바이두�텐센트,알리바바�;
$data1 // 출력시에는 '바이두�텐센트, 알리바바�
입니다.var_dump($data);
var_dump($data1);
인쇄 결과:
$data: string(24) "Baidu�Tencent, Alibaba"
$data1:string(22) "Baidu�Tencent, Alibaba"
$keywordsData = json_encode($data, JSON_UNESCAPED_UNICODE);
$keywordsData1 = json_encode($data1, JSON_UNESCAPED_UNICODE);
var_dump($keywordsData);
var_dump($keywordsData1);
결과 인쇄:
keywordsData:string(26) ""Baidu�Tencent, Alibaba""
keywordsData1:bool(false)
왜 그런가요? 변수를 직접 가져오고 싶은데 이런 문제가 발생했습니다. 답변 부탁드립니다. 감사합니다
으아아아
두 변수는 모두 문자열이지만 하나의 길이는 24이고 다른 하나의 길이는 22입니다. 두 번째 변수는 분명히 UTF8로 인코딩되지 않았으므로
json_encode
물론 잘못된 것입니다.먼저 문자열 인코딩을 확인할 수 있습니다,
mb_detect_encoding
,然后再转成UTF8,mb_convert_encoding
.