関東地方の美しい夜景を観にいこう。言語を用いて文字列をURLエンコード/デコードする方法について解説します。エンコードにおける注意点についても解説します。エンコードクラスを整理します。次の2つから選択すれば良いでしょう。利用する場合は、次のようにプログラムを書きます。decodedResult);実行結果は次の通りです。クラスを利用する場合は、次のようにプログラムを書きます。decodedResult);実行結果は次の通りです。利用する方が経験上は良いかな思っています。理由としては次のことがあります。エンコード/デコードが正しく処理できる。文字列が上手く処理できない問題はググるとたくさん出てくる)URLエンコードには落とし穴があるぞ!さて、実はここが本題です。開発者の間で「このパラメータは、URLエンコードしてね」と意思疎通をとったつもりでも、いざ動かしてみると問題が発生する「落とし穴」があります。ここではその「落とし穴」について掘り下げてみようと思います。エンコードにも様々な”方言”があります。方言の違いにより、メッセージが上手く解釈されない場合があります。言語でのURLエンコード処理では「*」「-」「_」の3つの記号が変換されません。半角スペースは「+」に置き換わります。これは不具合という訳ではなく、そういうルールのURLエンコードなのです。ついてもその仕様に則ってデコードします。エンコードされた文字列を処理する場合です。エンコード処理では、半角スペースは「%20」に置き換わります。関数では「;/?:@&=+$-_!~*.,()#’」の記号がエンコードされません。処理する、またその逆の場合においても、エンコード/デコードが上手くいかなくなることは、良く起こりがちな問題です。環境や言語を踏まえて、設計の段階でどのURLエンコードルールに合わせるのかを明確にしておくことが重要です。エンコードについて解説しました。後半で述べた「落とし穴」にハマらないように注意して設計をしてください。系のWEBエンジニア。WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。