代码如下:
&name=" + new URLEncoder().encode(user.getName(), Charset.defaultCharset()) ;
只需要将中文参数 encode 一下就 ok 了.
当然, 知其然更要知其所以然.
URLEncoder 和 URLDecoder 的作用如下:
1.URLEncoder.encode(String s, String enc)
使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式
URLDecoder.decode(String s, String enc)
使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码.
2. 发送的时候使用 URLEncoder.encode 编码, 接收的时候使用 URLDecoder.decode 解码, 都按指定的编码格式进行编码, 解码, 可以保证不会出现乱码
3. 主要用来 http get 请求不能传输中文参数问题. http 请求是不接受中文参数的.
这就需要发送方, 将中文参数 encode, 接收方将参数 decode, 这样接收方就能收到准确的原始字符串了.
如:
- String testString = "abcdefghijk";
- try
- {
- String encoderString = URLEncoder.encode(testString, "utf-8");
- System.out.println(encoderString);
- String decodedString = URLDecoder.decode(encoderString, "utf-8");
- System.out.println(decodedString);
- } catch (UnsupportedEncodingException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
来源: http://www.bubuko.com/infodetail-2777166.html