URLEncoder/URLDecoderが悩ましい変換をするので、仕様的な点でURLエンコードについて確認する。RFC 3986 の 2.1 Percent-Encoding のところに、まずあった。まぁ、% HEXDIG HEXDIG で構成するべしという感じ。そんで、大文字でも小文字でも一緒だけど、大文字を使うべしと書いてある(そうなのか…)。そんで、2.3. Unreserved Characters に ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), tilde (%7E) ていうのは、正規化により %XY から文字に変換されるべしと言っている。Wikipedia の Percent-encodingには、結果として、URL が短くなるから好まれるみたい、というように書いてある。HTML 的には、application/x-www-form-urlencoded あたりだな。RFC 1738を参照しているけど、これは RFC 3986 でアップデートされているし。Firefox とかは、%41 は A とかとして URL で扱ってくれるようだ。URLEncoderは %41 ではく。URLDecoder はこの辺を柔軟にやらんから、マルチバイトで化けるわけで(過去との互換性を維持し続けるためなのかな…)。そんなわけで、間違いとは言わないけど、世の中についていっていないから、URLDecoder は使いにくい…。
-
最近の記事
-
カテゴリ
- Android (7)
- Apache (396)
- codehaus (4)
- CodeLibs (140)
- elasticsearch (23)
- iOS (2)
- Java (476)
- jQuery (2)
- Linux (131)
- Machine Learning (7)
- MacOS (12)
- MySQL (1)
- Octave (3)
- PAL (296)
- Python (17)
- scikit-learn (1)
- Ruby (2)
- Scala (1)
- Seasar (338)
- SSOProxy (11)
- Tech (181)
- Work (80)
- XML (1)
- その他 (703)
- Outatime (2)
- 今日のひとこと (452)
-