每次JAVA传参涉及到中文时,总要被虐,这次虽然最后的解决还是比较简单的,但为了纪念中间走的弯路还是决定记录一下~~~
1、从前台(jsp)到后台(java)时传递了一个中文参数:name
此时为防止乱码,需要编码成 utf-8(此处也可以编码成 GBK和gb2312 格式,前提是要和你前台设置的编码格式相同),方法如下:
name = new String(name.getBytes(“ISO8859-1”),”utf-8”);
2、需要打开的url链接为原有链接+name
虽然步骤1已经将name进行了utf-8编码,但是打开时数据就变成了 ????
此时,需要对name再次进行编码,方法如下:
url = url + java.net.URLEncoder.encode(name,”utf-8”);
3、打开url链接后获得的数据又是乱码。。。
啥也不说了,方法如下:
URL urlObject = new URL(url); //将String型数据变为url类型
URLConnection uc = urlObject.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(),”utf-8”)); //主要是这句需要加上编码
以上完全是个人项目中遇到的问题,如果解释不对的地方,欢迎指出!