cari

Rumah  >  Soal Jawab  >  teks badan

Mengapa rentetan yang sama dikodkan secara berbeza dalam PHP?

header("Content-type:text/html;charset=utf-8");
$secret1 = "rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=";
$secret2 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';
$secret3 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';

var_dump(trim($secret1));
echo "<br>";
var_dump(trim($secret2));
echo "<br>";
var_dump($secret3);
echo "<br>";
echo mb_detect_encoding($secret1, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));
echo "<br>";
echo mb_detect_encoding($secret2, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));
echo "<br>";
echo mb_detect_encoding($secret3, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));

Rentetan yang sama memaparkan pengekodan yang berbeza apabila mengesan pengekodan Apakah masalahnya?

20190506123102.png

保哥后院保哥后院2139 hari yang lalu1053

membalas semua(2)saya akan balas

  • 天蓬老师

    天蓬老师2019-05-06 16:33:50

    Untuk set aksara yang berbeza, akan ada skema pengekodan yang berbeza Yang semasa ialah UTF8

    balas
    0
  • 保哥后院

    Terima kasih, Cikgu Peter-Zhu. Ini adalah kod penyulitan yang dijana menggunakan AES dalam phpstorm Didapati bahawa panjang dan kaedah pengekodan rentetan adalah berbeza semasa proses penyahsulitan. Sekarang dalam proses menyelesaikan pengaturcaraan, bagaimana untuk mengelakkan masalah sedemikian. Pada masa ini, anda boleh menggunakan aksara khas BOM yang tidak kelihatan dalam fail untuk mengosongkan fungsi removeBom($string) { if (substr($string, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) { return substr($string, 3 } return $string }

    保哥后院 · 2019-05-07 10:28:21
  • Batalbalas