URLエンコーディング完全ガイド
URLエンコーディングについて知っておくべきことをすべて学びましょう。URLエンコーディングとは何か、なぜ重要なのか、パーセントエンコーディングの仕組み、そしてURL内の特殊文字を扱うためのベストプラクティスを解説します。
URLエンコーディングとWeb開発に関するヒント、ガイド、ベストプラクティスをご紹介します。
URLエンコーディングについて知っておくべきことをすべて学びましょう。URLエンコーディングとは何か、なぜ重要なのか、パーセントエンコーディングの仕組み、そしてURL内の特殊文字を扱うためのベストプラクティスを解説します。
JavaScript の encodeURIComponent() 関数と encodeURI() 関数を、具体例とベストプラクティスを交えて詳しく比較します。
JavaScript でよく発生する「URIError: URI malformed」エラーの原因を突き止め、実践的な解決策で修正する方法を解説します。
スペース、アンパサンド、Unicodeなど、特殊文字のURLエンコーディングを網羅した開発者向けリファレンス。
REST API 開発における URL エンコーディングをマスターしましょう。クエリパラメータやパスセグメントを正しくエンコードし、信頼性の高い API を構築する方法を解説します。
encodeURI は URL 全体をエンコードし、/、?、# などの構造上の文字はそのまま残します。encodeURIComponent は URI の 1 つのコンポーネントをエンコードし、/、?、& を含むすべての特殊文字をエンコードします。クエリパラメータの値には encodeURIComponent を、URL 全体には encodeURI を使いましょう。
URLエンコーディング(パーセントエンコーディング)は、RFC 3986に従ってURL内の特殊文字を%XX形式に変換します。Base64エンコーディングは、RFC 4648に従ってバイナリデータを64個のASCII文字を使ったテキスト文字列に変換します。両者は異なる目的を持ち、互換性はありません。
URLエンコードされた文字の完全なリファレンス表。すべての印字可能なASCII文字(32〜126)、よく使われるUnicode文字、そしてRFC 3986で定義されたパーセントエンコード表現を網羅しています。
PythonのURLエンコードでは、文字列のパーセントエンコーディングに urllib.parse.quote() を、辞書をクエリ文字列にエンコードするのに urllib.parse.urlencode() を使います。本ガイドでは quote()、unquote()、urlencode()、parse_qs() を実践的な例とともに解説します。
パーセントエンコーディングは、URI 内の特殊文字をパーセント記号(%)と 2 桁の 16 進数に置き換えてエンコードする仕組みで、RFC 3986 で定義されています。これにより、URL がインターネット上を安全に送信できる有効な ASCII 文字だけで構成されることが保証されます。
%20 はスペース文字を表す RFC 3986 標準のパーセントエンコーディングであり、URL のパスをはじめとするほとんどの場面で使うべきものです。一方、+ 記号がスペースを表すのは、HTML フォームの送信や一部のクエリ文字列で使われる application/x-www-form-urlencoded 形式に限られます。
JavaScriptには、個々のURIコンポーネントをデコードする decodeURIComponent() と、URI全体をデコードする decodeURI() が用意されています。不正なURIを扱うには try-catch を使いましょう。URLやURLSearchParams APIは、URLを解析するためのより安全な代替手段を提供します。
REST API のクエリパラメータは、&、=、スペース、Unicode といった特殊文字を安全に含めるために、RFC 3986 に従ってパーセントエンコードする必要があります。JavaScript では encodeURIComponent()、Python では urllib.parse.quote()、Java では URLEncoder.encode() を使いましょう。
HTMLエンティティエンコードは、<、>、&、" などの文字をHTMLエンティティ(<、>、&、")に変換し、Webページで安全に表示できるようにします。URLエンコードは、文字を %XX 形式に変換し、URL内で安全に送信できるようにします。両者は異なる種類の攻撃から保護し、それぞれ異なる文脈で使われます。
Node.js の ERR_INVALID_URL エラーは、URL コンストラクタや url.parse() が有効な URL ではない文字列を受け取ったときに発生します。よくある原因としては、プロトコルの欠落、エンコードされていない特殊文字、不正な percent-encoding などが挙げられます。パースする前に入力を検証し、特殊文字をエンコードすることで修正できます。