日期:2014-05-18  浏览次数:21372 次

URLEncoder.encode(str, "utf-8") 错误怎么解决
我的开发环境是weblogic,   jdk1.3,   GBK的。
我需要将URL里的内容改成UTF-8,但是总出现编译错误(如下)。
在不改开发环境的情况下,将GBK改成UTF-8的话(我已经加了java.net包),怎么解决啊?

D:\bea\wlserver6.1\config\das\applications\das-c\WorkingDir\jsp_servlet\_jsp\_sms\__save_file.java:193:   encode(java.lang.String)   in   java.net.URLEncoder   cannot   be   applied   to   (java.lang.String,java.lang.String)
                        String   smstext               =   java.net.URLEncoder.encode(request.getParameter( "smstext "), "UTF-8 ");     //[   /jsp/sms/save_file.jsp;   Line:   18]
                                                                                                            ^
1   error



------解决方案--------------------
title=URLDecoder.decode(title, "UTF-8 ");//解码 E5%88%98 将解为中文
p2=URLEncoder.encode(p1, "UTF-8 ");//编码
配合使用
------解决方案--------------------
可能是不了解getParameter方法的内部工作细节造成的
getParameter方法内部要先进行URL解码,其使用哪种字符集编码进行编码有一下两种依据方式
(1)当客户端采用url地址后面传递参数的时候,getParameter默认使用ISO-8859-1编码进行URL解码
(1)如果客户端采用实体内容传递参数时,getParameter方法采用getCharacterEncoding方法返回的字符集编码进行解码,如果getCharacterEncoding方法返回值为null时,才采用ISO-8859-1编码进行解码。