同じ文字列が PHP で異なる方法でエンコードされるのはなぜですか?
保哥后院
保哥后院 2019-05-06 12:50:40
0
2
1012
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"));

コードを検出すると、同じ文字列でも異なるコードが表示されます。何が問題ですか?

20190506123102.png

保哥后院
保哥后院

漏刻有时,数据可视化大屏。

全員に返信(1)
Peter-Zhu

文字セットが異なると、異なるエンコード スキームが存在します。現在の一般的なエンコード スキームは UTF8 です。

いいねを押す +0
  • 返事 ピーター・ジュー先生、ありがとうございました。これは、phpstorm で AES を使用して生成された暗号化コードであり、復号化プロセス中に文字列の長さとエンコード方法が異なることがわかります。現在、そのような問題を回避する方法をプログラミングで解決する過程にあります。現在、ファイル内で BOM の特殊な非表示文字を使用して、関数 RemoveBom($string) { if (substr($string, 0, 3) == Pack("CCC", 0xef, 0xbb, 0xbf)) { をクリアできます。戻り値substr($string, 3);
    保哥后院 著者 2019-05-07 10:28:21
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート