php echo get パラメータが文字化けする解決策: 1. "iconv("gb2312","utf-8",$str);" を使用してエンコーディングを変換します; 2. mb_convert_encoding 関数を通じてエンコーディングを変換します。
この記事の動作環境: Windows7 システム、PHP7.4 バージョン、DELL G3 コンピューター
こんな場合はどうすればよいですかphpのecho getパラメータが文字化けしていますか?
PHP が GET で文字化けした中国語パラメータを受け取る理由と解決策
数日前、sphinx を使用して検索関数を作成し、ブラウザで検索効果をテストしましたが、見つかりませんでした。中国語のコンテンツです。 $_GETで取得したキーワードをechoで出力したところ、UTF-8ではページエンコーディングが文字化けしていましたが、gb2312に切り替えると正常になりました。ただし、sphinx は UTF-8 の漢字検索のみをサポートしているため、中国語パラメータを受け取る問題を解決する必要がありました。
ネットでググってみたところ、「PHP による GET 中国語パラメータ文字化けコード受信に関する徹底調査」という記事を見つけましたが、ブラウザの設定の問題であると書かれていました。中国語インターフェイス ブラウザの bar パラメータは、通常、gbk エンコードでパラメータを受け取ります。このような状況では、PHP の組み込みトランスコーディング関数を使用してエンコーディングの問題に対処する必要があります。
オプション 1:
$str = iconv("gb2312","utf-8",$str);
オプション 2:
mb_convert_encoding($str, "utf-8", "gb2312");
in utf -8 のページ エンコーディングでテキスト入力ボックスから取得された中国語パラメータの場合、ページはデフォルトで現在のエンコーディングになるため、この場合は上記のトランスコーディング方法を使用する必要はありません。
ページ内に中国語のパラメータ値を含むリンクを生成したい場合は、utf-8 エンコード コードで urlencode() を使用して中国語の文字をエンコードしてから、リンクを生成する必要があります。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がphp echo getパラメータが文字化けした場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。