PHP URLencode の問題
現在のテスト ページは次のとおりです
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><?php
$name = $_GET['name'];
echo urlencode($name);
?>
ログイン後にコピー
XXX.php?name=data 構造にアクセスします
さまざまなブラウザから返される結果は実際には違う!
Firefox7 および IE9 での出力は %CA%FD%BE%DD%BD%E1%B9%B9 ですが、chrome での出力は %E6%95%B0%E6%8D%AE%E7%BB% です。 93%E6%9E%84! !
PHP の urlencode 関数で処理され、得られる結果がブラウザに関係するのはなぜですか?
もう 1 つの問題は、単純なフォームを作成したいことです。メソッドは get
ですが、テキストが中国語の場合、それが「データ構造」であると仮定して、エンコードされた結果が自動的にエンコードされてしまいます。それは%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84です。この結果はJavaScriptのencodeURIComponent処理の結果と同じです。
そして、php 側で処理するときは、%CA%FD%BE%DD%BD%E1%B9%B9 (つまり、php の URLencode) を取得する必要があります。
この状況にどう対処すればよいでしょうか?つまり、encodeURIComponentから結果が得られた場合、それをどのように処理してurlencodeの結果に変換するかということです。
-----解決策---------うーん、%E6%95% B0 %E6%8D%AE%E7%BB%93%E6%9E%84
文字化け後のurlencodeの結果です。エンコード形式を変換します。
------解決策------------------