Home‎ > ‎WebDev‎ > ‎JavaScript‎ > ‎

URLencode

080628_08_37

何を今更なのだが、ここら辺きちんと調べておきたい。

ま、何がやりたいかというと、検索エンジンの検索文字列を取り出したいだけなのだが、
UTF-8でエンコードされているとは限らないわけだ。

例えば、yahooの路線検索の上に検索ボックスがある
http://transit.yahoo.co.jp/
こちらで「日本語」と検索してみよう。
結果、ei オプションに示されているように EUC-JP でエンコードされている。

これを、decodeURI・decodeURIComponentで、デコードしようとすると、
URIError: malformed URI sequence  というのが返ってくる。

http://www.cresc.co.jp/tech/java/URLencoding/JavaScript_URLEncoding.htm
UTF-8に統一する解法。
残念ながら、今回の目的には合わない。

実のところ、そこまでクリティカルではないし、デコードが主目的だったりする。
1-2%程度の化けは、許容範囲だろう。

こうなると、サーバへ持って行って処理するのが簡単とは思うのだが
(実際、GoogleAnalyticsなどのウェブ解析サービスでは、そういう処理をしている)
なんとかならんかな。

とおもっていたら、こんなんみつけた。
http://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html
予想していたとおり ^^; やっぱりこうなるのね。



Comments