URLEncoder/URLDecoder (使用Post 收发数据注意编码问题)

一、java.net.URLEncoder.encoder()编码

在使用客户端Post  发送了一段数据

xHttp.post(szURL, “crackren+001” ); 

在服务端Servlet中收到的数据却变成了

"crackren 001" 把加号给我过滤了。

但是由于加密方式我又必须要用到这些符号,

所以在发送数据时最好使用java.net.URLEncoder.encoder();编码:

xHttp.post(szURL, java.net.URLEncoder.encoder(“crackren+001”, “UTF-8”));

 收到数据后就会变成"crackren+001"了

不光加号,诸如字符: / & ? @ # ; $ + = 和 %也可以被使用,但是它们各有其特殊的用途,这些字符和所有其他字符就应该被编码。

二、java.net.URLDecoder.decode()解码

但是如果发送的数据中有中文的话经过编码,服务器收到就会出现乱码,所以我们要先把收到的数据解码.

正常使用java.net.URLDecoder.decode()来解码。

但是request中的数据真不知道怎样取出后使用URLDecoder来解码,谁要是知道的话给我说一下,

我是在Servlet 收到数据时可以直接使用request.setCharacterEncoding("utf-8");设置编码。

这样取出来的数据就会按照utf-8的方式取,不会出现乱码了,效果是一样的

相关推荐