0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptで/,?,#(予約語)をエンコード・デコードする方法

Last updated at Posted at 2024-12-06

忘備録

Next.jsプロジェクト作成中、/を含む文字列をエンコードした後、decodeURIを使ってデコードしても、/だけデコードされなかった。

解決法

encodeURIComponentdecodeURIComponentをつかう
encodeURI・decodeURIとの違い
詳しく

動作
encodeURI URI全体をエンコード。ただし、予約語はエンコードされない。
encodeURIComponent URI全体をエンコード。予約語もエンコードする。
decodeURI URI全体をデコード。ただし、予約語はエンコードされない。
decodeURIComponent URI全体をデコード。予約語もエンコードする。

予約語

  • encodeURI
console.log(encodeURI("今日は12/6ですか?"))
  • encodeURIComponent
console.log(encodeURIComponent("今日は12/6ですか?"))
  • decodeURI
console.log(decodeURI(encodeURIComponent("今日は12/6ですか?")))
  • decodeURIComponent
console.log(decodeURIComponent(encodeURIComponent("今日は12/6ですか?")))

結果

  • encodeURI
%E4%BB%8A%E6%97%A5%E3%81%AF12/6%E3%81%A7%E3%81%99%E3%81%8B?

予約語はエンコードされない

  • encodeURIComponent
%E4%BB%8A%E6%97%A5%E3%81%AF12%2F6%E3%81%A7%E3%81%99%E3%81%8B%3F

予約語もエンコードされる

  • decodeURI
今日は12%2F6ですか%3F

予約語はデコードされない

  • decodeURIComponent
今日は12/6ですか?

予約語もデコードされる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?