[英]encoding a message using apache commons
我正在尝试对某些消息进行base 64编码,然后对消息进行URL编码,然后将整个编码后的内容作为参数/值传递给查询字符串。 http://www.xxxxxx.com/xxxxx?query=base64urlencoded消息
所以我想使用base64编码,然后再使用URL编码。 我看到apache为此提供了很好的库。
因此,在以下apache方法中:
1)如何查看我要使用哪种方法1),2)和3)2)在下面的方法1中,使用特定字符集进行编码意味着仅使用所选字符集进行编码? 1和3有什么区别? 哪个更安全??? 2)我首先使用base64,这是否意味着我将仅获得字节数组作为输出,因此我应仅使用方法2?
URLCodec url =新的URLCodec();
1)url.encode(str,charset);
2)url.encode(bytes);
3)url.encode(str);
这个测试应该很清楚
String s1 = "test";
System.out.println(s1);
Base64 base64 = new Base64();
String s2 = base64.encodeAsString(s1.getBytes());
System.out.println(s2);
URLCodec url = new URLCodec();
String s3 = url.encode(s2);
System.out.println(s3);
s2 = url.decode(s3);
System.out.println(s2);
s1 = new String(base64.decode(s2));
System.out.println(s1);
输出
test
dGVzdA==
dGVzdA%3D%3D
dGVzdA==
test
顺便说一句,您可以对标准java.net.URLEncoder / java.net.URLDecoder和javax.bind.DatatypeConverted类进行相同的操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.