ホームページ > php教程 > php手册 > PHPのURLアドレスバーで送信される中国語の文字化けの解決策集

PHPのURLアドレスバーで送信される中国語の文字化けの解決策集

WBOY
リリース: 2016-06-13 12:14:57
オリジナル
894 人が閲覧しました

PHP アドレスバーの中国語の $_GET が文字化けする、urlencode と urldecode の使い方を詳しく説明します
URL エンコード
構文: string urlencode(string str);
戻り値: 文字列
関数の種類: エンコード処理
例:

コードをコピー コードは次のとおりです:


$ ChineseName="私の名前は中国語です";
$EncodeStr=urlencode($ ChineseName);
echo " 私の名前";
?>


URL デコード
URL エンコードされた文字列を復元します。
構文: string urldecode(string str);
戻り値: String
関数の種類: エンコード処理
例:
以前に渡された中国語テキストを処理して表示します

コードをコピー コードは次のとおりです。


$DecodeStr=urldecode($_GET['name']); // ブラウザが自動的にデコードしてくれるため、デコードする必要はないかもしれません
echo $DecodeStr;
?>

PHPのgetメソッドでURLから取得した中国語文字化け問題について

$gonghui = iconv("gb2312","UTF-8",$gonghuiを使用してください) ); 別のメソッド コード
/**
* マルチバイト文字列エンコーディング変換関数
*
* @param string str エンコードして変換する必要がある文字列
* @param string to_encoding は、次のような特定のエンコーディングへの変換を指定します。 : gb2312、gbk、utf-8 など
* @parammixed from_encoding JIS、eucjp-win、sjis-win 混合エンコーディングを同時に指定するなど、元の文字列のエンコーディングを混合指定します
* @return string
string mb_convert_encoding ( string str, string to_encoding [,mixed from_encoding] )
**/
mb_convert_encoding 関数は、PHP の内部マルチバイト文字列エンコーディング変換関数であり、必要に応じてほぼすべてのエンコーディングをサポートできます。 PHP >= 4.0.6、5 つのバージョンがサポートされています。

reg.php?gh=XX を直接取得します。

// ユニオンのログインパラメータ

$gonhui = $_GET['gh'];

取得した $gonghui は gb2312 でエンコードされ、文字化けを表示するために utf-8 Web ページに出力されます

に変更されました

//ユニオンログインパラメータ
$gonghui = $_GET['gh'];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

正常に表示されます

ページ全体を変換します

この方法は、すべてのコーディング環境に適しています。このように、最初の 128 文字 (表示文字) 以外のすべての文字セットは NCR で表されます (「漢字」などの数字参照は「漢字」に変換されます)。このようなエンコードをページ上で使用できます。どのエンコード環境でも正常に表示されます。

次の 3 行のコードを php ファイルの先頭に追加します。

コードをコピーします コードは次のとおりです。


mb_internal_encoding("gb2312") // gb2312 は元のエンコーディングです。ウェブサイトの
mb_http_output("HTML-ENTITIES")
ob_start('mb_output_handler');

mb_convert_encoding 関数を使用するには、PHP の mbstring (マルチバイト文字列) 拡張機能を有効にする必要があります。

PHP の mbstring 拡張機能が有効になっていない場合は、PHP が拡張機能をサポートできるように次の設定を行う必要があります。

1. Windows サーバー環境
php.ini ファイルを編集し、extension=php_mbstring.dll の前の ; を削除し、Web サーバーを再起動します。

2. Linux サーバー環境
設定のコンパイル時に --enable-mbstring=cn コンパイル パラメーターを追加し、PHP をコンパイルしてインストールします。

他のネチズンからの 3 番目の参照方法:
//方法 1 urldecode
$url = 'aaa.php?region='.urldecode("四川省");
aaa

//方法 2 Base64_encode

$test="四川省";
$test1=base64_encode($test);
エコー 'aaa ';
?>

別のページはbase64_decodeを使用してデコードされます

base64_decode($region);

//方法 3 により、サーバーは中国語をサポートします

[root@dhcp ~]# ロケール

lang=zh_cn.utf-8
lc_ctype="zh_cn.utf-8"
lc_numeric="zh_cn.utf-8"
lc_time=c
lc_collat​​e=c
lc_monetary ="zh_cn.utf-8"
lc_messages="zh_cn.utf-8"
lc_paper="zh_cn.utf-8"
lc_name="zh_cn.utf-8"
lc_address=" zh_cn.utf-8"
lc_telephone="zh_cn.utf-8"
lc_measurement="zh_cn.utf-8"
lc_identification="zh_cn.utf-8"
lc_all=
[root@dhcp ~]#

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート