php urlアドレスバー中国語文字化けし解決方法集合

3000 ワード

phpアドレスバー中国語$GETが下りてくると文字化けし、urlencodeとurldecodeの使い方url符号化文法を詳しく解く:string urlencode(string str);戻り値:文字列関数の種類:エンコーディング処理:
 
  
$ChineseName=" , ";
$EncodeStr=urlencode($ChineseName);
echo "";
?>

url復号
URLエンコーディング文字列を復元します.
構文:string urldecode(string str);
戻り値:文字列
関数の種類:エンコーディング処理
例:
前から伝わってきた中国語を処理表示する
 
  
$DecodeStr=urldecode($_GET['name']);// ,
echo $DecodeStr;
?>

phpがgetメソッドでurlから取得した中国語の文字化けし問題について$gonghui=iconv(「gb 2312」,「UTF-8」,$gonghui)を使用する.別の方法コード/***マルチバイト文字列符号化変換関数*@param string str符号化変換が必要な文字列*@param string to_encoding指定は、gb 2312、gbk、utf-8などの*@param mixed from_EncodingブレンドJIS,eucjp-win,sjis-winブレンドエンコード*@return stringstring mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )**/mb_convert_Encoding関数はphp内部のマルチバイト文字列符号化変換関数であり,必要に応じてすべての符号化をほぼサポートすることができる.PHP  >= 4.0.バージョン6、5でサポートされています.
regを直接取得する.php?gh=某某;
//組合登録
$gonghui = $_GET['gh'];
得られた$gonghuiはgb 2312符号化のためにutf-8ページに出力され、文字化けして表示される
に改心
//組合登録パラメータ$gonghui=$GET['gh']; $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
正常であることを示します
ページ全体を変換
この方法はすべての符号化環境に適用される.このように上位128文字以外(表示文字)の文字セットをNCR(Numeric character reference、例えば「漢字」が「漢字」に変換される形式)で表すと、このような符号化は任意の符号化環境下でページが正常に表示される.
phpファイルのヘッダに次の3行のコードを追加します.
 
  
mb_internal_encoding("gb2312");  // gb2312     
mb_http_output("HTML-ENTITIES");    
ob_start('mb_output_handler'); 

mb_の使用convert_Encoding関数はPHPのmbstring(multi-byte string)拡張を有効にする必要があります.
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 base 64_encode
$test=「四川省」;$test1=base64_encode($test);echo ' aaa ';?>
別のページではbase 64_を使用します.decode解離
base64_decode($region);
//方法3サーバーに中国語をサポートさせる
[root@dhcp ~]# locale
lang=zh_cn.utf-8lc_ctype="zh_cn.utf-8"lc_numeric="zh_cn.utf-8"lc_time=clc_collate=clc_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 ~]#