ナウなHTML5で必要な属性が足りていなかったのでいくらか足しました。
- textareaタグ
- maxlength属性
- wrap属性
やはり無条件に全て受け入れてそのまま出すというのが正解だった気がしますが今更後には引けない。
というか、これJava1.3のソースをtarget=Java1.2で作っているのですが、
Java9以降は3バージョンくらい古いバージョンしかサポートしてくれない予定のようなので
さすがにそろそろ延命措置も厳しい気がします。
| 1 | public String myUrlEncode(String source) |
|---|---|
| 2 | { |
| 3 | StringBuilder sb = new StringBuilder(); |
| 4 | |
| 5 | // URLで安全な(変換しない)値を指定する |
| 6 | // 以下は英数字のみの指定 |
| 7 | BitSet urlSafe = new BitSet(); |
| 8 | urlSafe.set(0x30, 0x3a); |
| 9 | urlSafe.set(0x41, 0x05b); |
| 10 | urlSafe.set(0x61, 0x07b); |
| 11 | |
| 12 | // URLCodec.encodeUrlを上記の設定を使って実行する |
| 13 | // 返される値は変換済み文字列のASCIIコード |
| 14 | for (byte b : URLCodec.encodeUrl(urlSafe, source.getBytes(StandardCharsets.UTF_8))) |
| 15 | sb.appendCodePoint(b); |
| 16 | |
| 17 | return sb.toString(); |
| 18 | } |