検索

ホームページ  >  に質問  >  本文

PHP は中国語の文字化けによって引き起こされる魔法の問題に遭遇しました

###例えば###

$data = '百度、テンセント、アリババ';

$data1 // これは変数です。印刷すると、'Baidu�Tencent, Alibaba'

となります。

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)

これはなぜですか?変数を直接取得したいのですが、この問題が発生しました。答えてください。ありがとうございます

大家讲道理大家讲道理2763日前963

全員に返信(2)返信します

  • phpcn_u1582

    phpcn_u15822017-05-31 10:35:23

    リーリー

    返事
    0
  • 習慣沉默

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

    2 つの変数は異なりますが、どちらも文字列ですが、1 つは長さ 24、もう 1 つは 22 です。2 番目の変数は明らかに UTF8 でエンコードされていません。json_encode もちろん、それは間違っています。

    最初に文字列エンコーディングを確認できます mb_detect_encoding,然后再转成UTF8,mb_convert_encoding

    返事
    0
  • キャンセル返事