PHP における URL デコードの不一致の謎を明らかにする
PHP の urldecode 関数を使用して URL 文字列をデコードしようとすると、ユーザーは予期しない結果に遭遇する可能性があります。たとえば、「Antônio Carlos Jobim」のような文字列をデコードしようとすると、意図した出力「Antônio Carlos Jobim」ではなく「Antônio Carlos Jobim」が生成される可能性があります。
この不一致は、文字列が次のとおりであるという事実から生じます。 URL エンコードだけでなく、UTF-8 エンコードでもエンコードされます。このような文字列を効果的にデコードするために、PHP には utf8_decode 関数が用意されています。
解決策:
問題を解決するには、次のアプローチを採用します。
<code class="php">echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));</code>
urldecode と utf8_decode を組み合わせると、文字列は最初に URL エンコードを使用してデコードされ、次に UTF-8 エンコードを使用してさらにデコードされます。これにより、正しい出力「Antônio Carlos Jobim.」が生成されます。
以上がPHP で URL デコードすると不一致が生じる場合があるのはなぜですか?また、それらを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。