URLエンコーディングをJavaで実装するには...
【1】 標準の URLEncoder.encode() を使用する 【2】 Apache Commons CodecのURLCodec を使用する
注意
要件次第でどちらも条件を満たさない可能性がある 詳細は以下の関連記事を参照のこと。https://blogs.yahoo.co.jp/dk521123/37111087.html
【1】 URLEncoder.encode() を使用する
* 標準のjava.net.URLEncoder.encode() を使用するhttps://docs.oracle.com/javase/jp/8/docs/api/java/net/URLEncoder.html
サンプル
import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class EncordDemo { public static void main(String[] args) { try { String encodedResult1 = URLEncoder.encode("abcdefghijklmnopqrstuvwxyz", "UTF-8"); System.out.println("Result: " + encodedResult1); String encodedResult2 = URLEncoder.encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "UTF-8"); System.out.println("Result: " + encodedResult2); String encodedResult3 = URLEncoder.encode("1234567890", "UTF-8"); System.out.println("Result: " + encodedResult3); String encodedResult4 = URLEncoder.encode("!\"#$%&'()@`{}[]+;*:_/?.,<>~^|\\=- ", "UTF-8"); System.out.println("Result: " + encodedResult4); String encodedResult5 = URLEncoder.encode("The string u@foo-bar", "UTF-8"); System.out.println("Result: " + encodedResult5); String encodedResult6 = URLEncoder.encode("あいうアイウ愛生", "UTF-8"); System.out.println("Result: " + encodedResult6); } catch (UnsupportedEncodingException ex) { ex.printStackTrace(); } } }
出力結果
Result: abcdefghijklmnopqrstuvwxyz Result: ABCDEFGHIJKLMNOPQRSTUVWXYZ Result: 1234567890 Result: %21%22%23%24%25%26%27%28%29%40%60%7B%7D%5B%5D%2B%3B*%3A_%2F%3F.%2C%3C%3E%7E%5E%7C%5C%3D-+ Result: The+string+u%40foo-bar Result: %E3%81%82%E3%81%84%E3%81%86%E3%82%A2%E3%82%A4%E3%82%A6%E6%84%9B%E7%94%9F
【2】 URLEncoder.encode() を使用する
* Apache Commons Codecのorg.apache.commons.codec.net.URLCodec.encode() を使用するDownload
https://commons.apache.org/proper/commons-codec/download_codec.cgi
API
https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/net/URLCodec.html
サンプル
commons-codec-1.10.jar をインポートしているimport org.apache.commons.codec.EncoderException; import org.apache.commons.codec.net.URLCodec; public class EncordDemo2 { public static void main(String[] args) { try { URLCodec codec = new URLCodec("UTF-8"); String encodedResult1 = codec.encode("abcdefghijklmnopqrstuvwxyz"); System.out.println("Result: " + encodedResult1); String encodedResult2 = codec.encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); System.out.println("Result: " + encodedResult2); String encodedResult3 = codec.encode("1234567890"); System.out.println("Result: " + encodedResult3); String encodedResult4 = codec.encode("!\"#$%&'()@`{}[]+;*:_/?.,<>~^|\\=- "); System.out.println("Result: " + encodedResult4); String encodedResult5 = codec.encode("The string u@foo-bar"); System.out.println("Result: " + encodedResult5); String encodedResult6 = codec.encode("あいうアイウ愛生"); System.out.println("Result: " + encodedResult6); } catch (EncoderException ex) { ex.printStackTrace(); } } }
出力結果
Result: abcdefghijklmnopqrstuvwxyz Result: ABCDEFGHIJKLMNOPQRSTUVWXYZ Result: 1234567890 Result: %21%22%23%24%25%26%27%28%29%40%60%7B%7D%5B%5D%2B%3B*%3A_%2F%3F.%2C%3C%3E%7E%5E%7C%5C%3D-+ Result: The+string+u%40foo-bar Result: %E3%81%82%E3%81%84%E3%81%86%E3%82%A2%E3%82%A4%E3%82%A6%E6%84%9B%E7%94%9F
参考文献
https://weblabo.oscasierra.net/java-urlencode/http://javatechnology.net/java/url-encode/
http://write-remember.com/program/java/url_encode/