搜索

首页  >  问答  >  正文

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($keywordsData1);

打印结果:
keywordsData:string(26) ""百度�腾讯,阿里""
keywordsData1:bool(false)

这是为什么啊 我想直接拿变量 但现在遇到这个问题,求解答,谢谢

大家讲道理大家讲道理2735 天前944

全部回复(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
  • 取消回复