ホームページ >バックエンド開発 >PHPチュートリアル >URL デコード問題の解決策_PHP チュートリアル

URL デコード問題の解決策_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-21 15:21:41965ブラウズ

Python の urllib ライブラリと js の encodeURIComponent をテストした後、それらは置き換えられません。スペースエンコードも「%20」に置き換えられます。 Python はスペース -> プラス記号を処理するために urllib.quote_plus、urlib.unquote_plus を提供しますが、これは合理的だと思われます。

RFC 3986 を確認してください: 次の段落があります

スキーム名は、文字で始まり、その後に文字、数字、プラス ("+")、ピリオド (".") などの任意の組み合わせが続く一連の文字で構成されます。ハイフン ("-")
RFC 2396 には次の段落があります

プラス "+"、ドル記号 "$"、およびカンマ "," 文字は、「予約済み」セット内の文字として扱われるため追加されました。クエリ コンポーネント内で予約されている
は、プラス記号がすでに URL の予約語であり、エスケープする必要がないことを意味します。

次に、HTML4 ドキュメントのプラス記号のエスケープがあります:

application/x-www-form-urlencoded
このコンテンツ タイプで送信されたフォームは次のようにエンコードされる必要があります:
コントロールの名前と値はエスケープされます。スペース文字は `+' に置き換えられ、その後予約文字が続きます....
content-type が application/x-www-form-urlencoded の場合にのみ + がエスケープされることを宣言します。

PHP ドキュメントをもう一度調べたところ、

rawurlencode() - RFC 3986 に従った URL エンコードがあることがわかりました


つまり、PHP は標準を実装するために rawurlencode と rawurldecode を実装しました。 。 。 。

元に戻すことはできませんか? 結局のところ、ほとんどの人は urlencode を使用できるはずです。 phpは本当に面倒です。 。 。 。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/324845.html技術記事 Python の urllib ライブラリと js の encodeURIComponent をテストした後、それらは置き換えられません。スペースエンコードも「%20」に置き換えられます。 Python は、処理するために urllib.quote_plus、urlib.unquote_plus を提供します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。