cutmail's blog

write the code

EUC-JPにおけるエンコード処理について

某webアプリをEUC-JPで作っているのですが、
その際、URLに検索語を含ませる必要があり、
既存のものを真似てbase64エンコードするようにしたのですが、
特定の語句をデコードしようとすると元の語句に戻らないという現象が起きました。

調べてみたらなにやらbase64をするのにEUC-JPはよくないらしく、
UTF-8を使用しても文字化けが発生する場合があるらしいので、
URLへの文字列渡しとしてbase64変換を使うのはあまりよくないのかも。

base64を使うメリットとしては、

具体的には、A–Z, a–z, 0–9 までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる。

http://ja.wikipedia.org/wiki/Base64

で、データ量が3/4になるらしいが、
URLへの文字列渡しなんかだったら、無難にURLエンコードしたほうがいいのかも。