JavaScriptで使えるencodeURI関数の使い方7選

JavaScriptでURLを操作する際に便利なencodeURI関数。特に、日本語や特殊文字が含まれるURLを安全に扱うために欠かせない関数です。この記事では、encodeURI関数の基本的な使い方から、具体例を交えた7の使い道を紹介します。備忘録としてまとめたので、使う場面が来たらすぐに活用してください!

1. encodeURIとは?

encodeURIは、URI(Uniform Resource Identifier)の形式を保ちながら、不正な文字(日本語やスペースなど)を安全にエンコードする関数です。
例えば、「/」や「:」といったURIの構造的に重要な文字はそのまま残し、その他の特殊文字をパーセントエンコーディングします。

encodeURI(URI文字列);

この変換により、ブラウザやサーバーがURLを正しく解釈できます。

2. 基本的な使い方

日本語や特殊文字を含むURLは、未エンコードのまま使用するとエラーや誤動作の原因になります。encodeURIでエンコードすることで、安全なURLに変換できます。

詳細解説: 日本語(例えば「検索」)はマルチバイト文字です。そのままではURLとして使用できないため、UTF-8形式でエンコードしてURLに適した形式(例:%E6%A4%9C%E7%B4%A2)に変換されます。

const url = "https://example.com/検索";
const encodedUrl = encodeURI(url);
console.log(encodedUrl);
// 出力: https://example.com/%E6%A4%9C%E7%B4%A2

3. スペースのエンコード

URLにスペース(空白)が含まれる場合、そのままだと認識できません。encodeURIはスペースを%20にエンコードします。

console.log(encodeURI("https://example.com/query with spaces"));
// 結果: https://example.com/query%20with%20spaces

ポイント

  • %20はスペースのエンコード結果。
  • URLにスペースが含まれるケースは多いので、必ずエンコードする習慣をつけましょう。

4. 日本語のエンコード

日本語を含むURLをそのまま使うと、ブラウザで正しく処理できないことがあります。encodeURIを使えば、日本語文字列を安全にエンコードできます。

console.log(encodeURI("https://example.com/こんにちは"));
// 結果: https://example.com/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

ポイント

  • 日本語の文字列はUTF-8形式でエンコードされ、ブラウザやサーバーで正確に認識されます。
  • 日本語を含むサイトでは必須の処理。

5. 特殊文字を含むURL

encodeURIは一部の特殊文字(:, /, ?, &, =, #など)をエンコードしません。これにより、URLの構造を損なわずに使用できます。

console.log(encodeURI("https://example.com/?name=John&Doe"));
// 結果: https://example.com/?name=John&Doe

ポイント

  • URLの一部として認識される文字はエンコードされず、そのまま利用されます。
  • クエリパラメータやアンカー(#)を扱う場合に便利。

6. パスだけをエンコードする

URL全体ではなく、部分的にエンコードしたい場合は、エンコード対象を明確に指定します。

const path = "日本語のページ";
console.log(`https://example.com/${encodeURI(path)}`);
// 結果: https://example.com/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8

ポイント

  • ドメイン名や固定部分をエンコードせずに動的パスのみエンコード可能。
  • 柔軟なURL生成に役立ちます。

7. クエリパラメータをエンコード

クエリパラメータ(例:検索キーワード)に特殊文字やスペースが含まれる場合でも、エンコードして安全に使用できます。

const queryParam = "検索 クエリ";
console.log(`https://example.com/?q=${encodeURI(queryParam)}`);
// 結果: https://example.com/?q=%E6%A4%9C%E7%B4%A2%20%E3%82%AF%E3%82%A8%E3%83%AA

総評

encodeURIは、URL全体を操作する際に非常に便利で、特に日本語や特殊文字が絡む場面では必須なので、これらの使い方を覚えておくと、実際の開発で大いに役立つでしょう。

どのケースで使用するかをイメージしながら、ぜひプロジェクトに取り入れてみてください!