ray88’s diary

お仕事で困ったとき用の自分用の覚書

JavaScript URIエンコードとURIデコード

URIエンコード
 ・アルファベットと一部の記号以外の文字(たとえば漢字やひらがな)は、
  URIの構成文字としての使用が制限されている
 ・それらの制限されている文字を使用する場合は、ある規則に従って
  制限されていない文字に変換する必要がある
 ・上記のような変換処理をURIエンコードという
URIデコード
 URIエンコードされたURIを復元する処理
サンプルコード

function myFunction(){
  const str = '字';
  console.log(encodeURI(str));
  console.log(encodeURIComponent(str));

  const uri = 'https://www.google.co.jp/search?q=字';
  console.log(encodeURI(uri));
  console.log(encodeURIComponent(uri));
}


※encodeURI関数は文字のみがエンコードされているのに対し、encodeURIComponent関数は「/」や「?」などの記号もエンコードされている。エンコード後もURIとして機能させたいのであればencodeURI関数を、その点をきにせずにURIエンコードする際はencodeURIComponent関数を使用すると良い。