Node.js で URL をエンコードする

Shraddha Paghdar 2023年10月12日
Node.js で URL をエンコードする

この記事では、Node.js で URL エンコーディングを行う方法について学習します。

Node.js での URI エンコーディング

JavaScript は、encodeURIComponent() と呼ばれる統合 URI エンコーディング機能を提供します。 この選択は、個々の UTF-8 エンコーディングを表す 1つ、2つ、3つ、または 4つものブレークアウト シーケンスを使用して、途方もない文字のすべての例を変更することにより、URI をエンコードします。

この関数は、Node.js を含む任意のクライアント側またはサーバー側のアプリケーションで使用できます。

構文:

encodeURIComponent(uriComponent)

uriComponent は必須パラメーターで、数値、文字列、ブール値、未定義、null、または任意のオブジェクトを指定できます。

エンコードする前に、uriComponent は文字列に変換されて受け取ります。 新しい文字列は、URI 要素としてエンコードされた、提供された uriComponent を表す出力として返されます。

クエリ文字列パラメーターを介してサーバーに送信されたフォームから、ユーザーが入力したフィールドで encodeURIComponent() を使用します。 これにより、個々の HTML 要素やエンコード/デコードが必要なその他の文字のデータ入力中に誤って生成されたエンコーディングと記号が排除されます。

encodeURIencodeURIComponent の唯一の違いは、encodeURIComponent が完全な文字列をエンコードするのに対し、encodeURI はプロトコル プレフィックス ("http://") とドメイン名を無視することです。

コード例:

console.log(encodeURIComponent(
    'select * from Users where email = "example@domain.com"'));
console.log(encodeURIComponent('http://exampleDomain.com/?param1=hello world'));
console.log(
    encodeURI('select * from Users where email = "example@domain.com"'));
console.log(encodeURI('http://exampleDomain.com/?param1=hello world'));

上記の例では、MySQL データベース クエリと URL クエリは encodeURIComponent() および encodeURI() 関数を使用してエンコードされています。 encodeURIComponent()encodeURI() の主な違いは、HTTP ドメインがクエリ パラメータの前後でのみエンコードされ、=@ 文字が encodeURI() でエンコードされないことです。 .

Node.js をサポートする任意のコンパイラで上記のコードを実行してみてください。 下の結果が表示されます。

出力:

select%20*%20from%20Users%20where%20email%20%3D%20%22example%40domain.com%22
http%3A%2F%2FexampleDomain.com%2F%3Fparam1%3Dhello%20world

select%20*%20from%20Users%20where%20email%20=%20%22example@domain.com%22
http://exampleDomain.com/?param1=hello%20world

デモを実行

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn