thinkphp iisの中国語パラメータ文字化け問題について
最初の方法:
?id="中文" を使用して中国語のパラメータを渡すと文字化けが発生します。これは、php で中国語を直接 URL に送信できないためです。この問題が他の言語でも発生するかどうかはわかりません。
インターネットで言及されている header("content-type:text/html;charset=utf-8"); を追加したり、データベース ページなどを utf8 に設定したりするような解決策では、完全に無効であり、常に渡されます。中国語が文字化けしてしまいました。
サイトでは常に PHP に統一 utf8 エンコーディングを使用していますが、パススルーすると常に文字化けします。その後、いくつかのブラウザをテストしたところ、360 はパススルーできることがわかりました。その後、$msg = iconv( を使用しました。 'gbk' ,'utf-8',$_GET["msg"]); いくつかのブラウザを変換してテストした後も、ほとんどのブラウザで文字化けが表示されます。
最後にまとめると、GET[]の過去の値については、中国語をURL内で直接送信することはできず、どうしても送信する必要がある場合は、urlencode()メソッドを使用して中国語を処理します。 POST[] をどうすればいいのかわかりません。まだ実験をしていません。
中国語を処理するには、urlencode() メソッドを使用するしかないようです。渡す前にエンコードし、渡した後に次の 2 つの関数を使用します。 Encoding: ".urlencode(') Chinese') ."、デコード: ".urldecode(' Chinese')."、括弧内の中国語は渡される文字です。
次のように: 最初にページを渡してエンコードします: td.php?id=".urlencode('中国語')."、次にページを受け入れてデコードします: urldecode(id).".
2番目の方法:
gbk でエンコードされたページで生成されたアドレスが utf-8 ページにリンクされており、gbk ページの中国語が gbk 形式でエンコードされて次のページに送信されると、utf-8 を受信した後に必ず文字化けが発生します。 8エンコーディング。
IIS の URL 書き換えモジュール、書き換えられた中国語エンコードも gbk です。ページが UTF-8 エンコードの場合、書き換えパラメーターは無効になります。このような状況では、PHP の組み込みトランスコーディング関数を使用してエンコーディングの問題を処理する必要があります:
オプション 1:
$name = iconv("gbk","utf-8",$name);
オプション 2:
mb_convert_encoding($name, "utf-8", "gbk");
http://www.bkjia.com/PHPjc/1079404.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1079404.html技術記事 thinkphp iis で中国語パラメータが文字化けする問題の最初の方法: ?id=中文 を使用して中国語パラメータを渡すと、文字化けが発生します。これは二次トランスコーディングの結果です...
。