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()でエンコードすると、

image2

となります。

また、『https://www.test.com/ホームページ.html』をencodeURIComponent()でエンコードすると、

image3

となります。

デコードする方法

デコードする方法も、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()でデコードすると、

image4

となります。

また、『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()でデコードすると、

image4

誤って『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()でデコードすると、

image5

となり、正しく変換されませんので、ご注意ください。

エンコード・デコードは、パラメーターの送信などで使いますので、ぜひ試してみてください。

ブログ一覧