Java で URI エンコード (RFC 3986)
自前エンコーディングはやらない方針で書いてみた。
とりあえず以下のコードでできた。
でも、絶対にもっといい方法がある気がする。
public static String encode(String uriTemplate) { StringBuffer buf = new StringBuffer(); for (int i=0; i<uriTemplate.length(); ++i) { String c = uriTemplate.substring(i, i+1); try { buf.append(new URI(null, null, c, null).toASCIIString()); } catch (URISyntaxException e) { return uriTemplate; } } return buf.toString(); }
実験コードなので、例外処理は適当なので注意。