ホームページ >バックエンド開発 >PHPの問題 >php echo getパラメータが文字化けした場合の対処方法

php echo getパラメータが文字化けした場合の対処方法

藏色散人
藏色散人オリジナル
2021-12-01 09:15:071916ブラウズ

php echo get パラメータが文字化けする解決策: 1. "iconv("gb2312","utf-8",$str);" を使用してエンコーディングを変換します; 2. mb_convert_encoding 関数を通じてエンコーディングを変換します。

php echo getパラメータが文字化けした場合の対処方法

この記事の動作環境: 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 サイトの他の関連記事を参照してください。

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