JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのencodeURI()関数とは?構文・使い方・実行例をわかりやすく解説

encodeURI() 関数は、URI(Uniform Resource Identifier)を表す文字列を受け取り、その中の文字をパーセントエンコーディング(%XX形式)のエスケープシーケンスに置き換えることでエンコードします。

ただし、encodeURI() は「URI全体」を対象とするため、URLの構造を維持するために必要な予約文字(:/?#[]@!$&'()*+,;= など)や、英数字・一部の記号はエンコードされずそのまま保持されます。主に日本語やキリル文字など、マルチバイト文字を含むURLを安全に扱いたい場合に利用されます。

構文

基本的な構文は以下のとおりです。

encodeURI(uri)
  • uri: エンコードしたい完全なURIを表す文字列
  • 戻り値: 必要な文字だけがエンコードされた新しい文字列

使用例

次の例では、キリル文字(шеллы)を含むURLを encodeURI() でエンコードしています。

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var result1 = encodeURI('https://www.qries.com/?x=шеллы');
      document.write(result1);
      document.write("<br>");
      var result2 = encodeURI('https://www.tutorialspoint.com/?x=шеллы');
      document.write(result2);
   </script>
</body>
</html>

出力結果

マルチバイト文字がUTF-8ベースのパーセントエンコーディングに変換されているのが確認できます。

https://www.qries.com/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B
https://www.tutorialspoint.com/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B

encodeURI() と encodeURIComponent() の違い

よく似た関数に encodeURIComponent() があります。encodeURI() がURL全体を前提として予約文字を残すのに対し、encodeURIComponent() はクエリパラメータなど「URIの一部分」を前提としており、&= を含むより多くの記号までエンコードします。用途に応じて使い分けることが重要です。

  1. Windows 8のパスワードを忘れたときのリセット方法|画像・PIN・テキストパスワード完全ガイド

    Windows 8は、Microsoft史上最もセキュリティ性の高いOSとして、ログイン時に利用できる新しいパスワード方式を2つ導入しました。それが「4桁のPIN」と「ピクチャパスワード(画像パスワード)」です。PINを使えば素早くサインインでき、ピクチャパスワードなら写真をなぞるジェスチャで、より直感的かつ楽しくログインできます。とはいえ、従来のテキストパスワードも依然として重要です。ピクチャパスワードやPINをリセットする際には、通常のパスワードが必要になる場面があるためです。 Windows 8のパスワードを忘れてしまった方もご安心ください。本記事では、テキストパスワード、ピクチャパスワ

  2. Windows・Mac・オンラインでGoogle Earthを録画する方法【完全ガイド】

    世界は思っているよりずっと小さいもの。なぜそう言えるのか、ご存じですか?世界中を旅することが夢なら、旅行チケットに何千円も何万円も費やす必要はないかもしれません。Google Earthのようなプラットフォームが、あなたの世界一周の憧れを叶えてくれるからです。場所を入力するだけで、その土地のバーチャルな絶景を楽しむことができます。もちろん、実際にその場所へ足を運ぶ体験には及びません。しかし、例えば近いうちに家族や友人と一緒に旅行に行く予定の場所を、事前にGoogle Earthでバーチャルツアーとして共有したいと思ったことはありませんか?そんなとき、Google Earthの動画はどうやって撮