Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
encodeURIComponent() 関数は URI を、特定の文字の各インスタンスを、その文字の UTF-8 エンコード方式を表す 1 つから 4 つのエスケープシーケンスで置き換えることでエンコードします (2 つのサロゲート文字で構成される文字の場合は 4 つのエスケープシーケンスになります)。 encodeURI() と比較すると、この関数は URI 構文の一部を含むより多くの文字をエンコードします。
URI の部分(パス、クエリー文字列、フラグメントなど)としてエンコードされる文字列。他にも文字列に変換される値があります。
与えられた文字列を表す URI 構成要素としてエンコードされた新しい文字列です。
uriComponent に孤立サロゲートがあると発生します。
encodeURIComponent() はグローバルオブジェクトの関数プロパティです。
encodeURIComponent は encodeURI() で説明されているのと同じエンコーディングアルゴリズムを使用します。下記を除くすべての文字をエスケープします。
A–Z a–z 0–9 - _ . ! ~ * ' ( )encodeURI() と比較すると、 encodeURIComponent() はより多くの文字セットをエスケープします。サーバーに送信されるフォームのユーザー入力フィールドには encodeURIComponent() を使用してください。これにより、文字参照のデータ入力中に不注意で生成される可能性のある & 記号や、エンコード/デコードが要求されるその他の文字がエンコードされます。例えば、ユーザーが Jack & Jill と入力した場合、encodeURIComponent() を使用しないと、アンパサンドはサーバー上で新しいフィールドの開始として解釈され、データの整合性が損なわれるおそれがあります。
application/x-www-form-urlencoded では、スペースは + に置換されます。そのため、encodeURIComponent() による置換に加えて %20 を + に置き換えることが望まれるかもしれません。
次の例は、サーバーレスポンスヘッダー引数の Content-Disposition や Link で (UTF-8 からなるファイル名などに) 必要となる特別な UTF-8 エンコーディングを提供します。
最新の RFC3986 では、 !, ', (, ), * を、たとえこれらの文字が正式な URI 区切り文字として使用されていないとしても予約しています。 IPv6 の URI 構文の一部である [ と ] もエンコードします。 RFC3986 に準拠した encodeURI の実装では、これらをエスケープすべきではありません。これは encodeURI() の例で示されています。
上位・下位のペアでないサロゲート文字をエンコードしようとした場合 URIError が発生します。
String.prototype.toWellFormed() を使用することができます。これは孤立サロゲートを Unicode 置換文字 (U+FFFD) に置き換えることで、このエラーを避けることができます。また、 String.prototype.isWellFormed() を使用することで、文字列を encodeURIComponent() に渡す前に、孤立サロゲートが含まれているかどうかを調べることができます。
| ECMAScript® 2027 Language Specification # sec-encodeuricomponent-uricomponent |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年8月23日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.