ホームページ  >  記事  >  バックエンド開発  >  PHPで渡されるパラメータが文字化けするのはなぜですか?

PHPで渡されるパラメータが文字化けするのはなぜですか?

藏色散人
藏色散人オリジナル
2021-12-22 10:23:141993ブラウズ

phpのパラメータが文字化けする原因は、エンコードが一貫していないためです。解決するには、uft-8エンコードを使用するように変更します。変更コードは、「mb_detect_encoding($typeName,'CP936,UTF- 8')」。

PHPで渡されるパラメータが文字化けするのはなぜですか?

この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。

php のパラメーターが文字化けするのはなぜですか?

php のパラメーターが文字化けする場合の解決策

Web サイト プロジェクトがプロジェクト エンコーディングとして gb2312 を使用している場合、異なるブラウザに接続すると、中国語の文字のエンコードが異なる場合があります。中国語を Web サイトのエンコードにエンコードするものと、中国語を utf-8 にエンコードするものがあります。バックグラウンドでパラメータを受信すると、文字化けエラーが発生します。より良い解決策は、パラメーター内の中国語の文字を識別し、gb2312 でない場合は変換することです。

$typeName = $_GET['typeName'];
$encode =  mb_detect_encoding($typeName,'CP936,UTF-8') ;
//如果是CP936,就是gbk编码,如果是UTF-8, 就是utf-8编码
if ($encode =='UTF-8') {
    //再调用转换成utf-8编码的函数,最终确保是utf-8
    $typeName = iconv("utf-8","gb2312",$typeName);
}

Web サイトのコーディングの問題と将来の拡張のために、uft-8 エンコーディングを使用することをお勧めします

推奨学習: "PHP ビデオ チュートリアル "

以上がPHPで渡されるパラメータが文字化けするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。