【JavaScript】記号や文字列をエンコード・デコードする方法
URI(URL)に文字列に記号や日本語があると、そのままでは受け付けてくれないことがあります。
では、記号や日本語を使用したい場合、どうすればいいのでしょうか?
今回は、記号や文字列をエンコード・デコードする方法を紹介します。
エンコード・デコードとは?
エンコードとは、記号や文字列を決まった形式に変換することです。
例えば、『おはよう』をエンコードすると『%E3%81%8A%E3%81%AF%E3%82%88%E3%81%86』となり、『マリオ&ルイージ』をエンコードすると『%E3%83%9E%E3%83%AA%E3%82%AA%26%E3%83%AB%E3%82%A4%E3%83%BC%E3%82%B8』となります。
デコードとは、エンコードされたデータを元の記号や文字列に戻すことです。
例えば、『%E6%99%B4%E3%82%8C』をデコードすると『晴れ』となります。
エンコードする方法
エンコードする方法は、encodeURI()とencodeURIComponent()があります。
encodeURI()とencodeURIComponent()の違いは、変換する文字の種類が異なります。
encodeURIComponent()は、『/』『?』『=』『+』『,』『;』『:』『@』『#』『$』『&』を変換します。
例えば、『https://www.test.com/ホームページ.html』をencodeURI()でエンコードすると、
となります。
また、『https://www.test.com/ホームページ.html』をencodeURIComponent()でエンコードすると、
となります。
デコードする方法
デコードする方法も、decodeURI()とdecodeURIComponent()があります。
encodeURIComponent()と同じで、『/』『?』『=』『+』『,』『;』『:』『@』『#』『$』『&』を変換するかしないかで使用方法が異なります。
先程の、『https://www.test.com/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8.html』をdecodeURI()でデコードすると、
となります。
また、『https%3A%2F%2Fwww.test.com%2F%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8.html』をdecodeURIComponent()でデコードすると、
誤って『https%3A%2F%2Fwww.test.com%2F%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8.html』をdecodeURI()でデコードすると、
となり、正しく変換されませんので、ご注意ください。
エンコード・デコードは、パラメーターの送信などで使いますので、ぜひ試してみてください。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)