URLEncoder.encode(str, "utf-8") 错误怎么解决

时间:2022-11-26 14:40:37
我的开发环境是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

5 个解决方案

#1


title=URLDecoder.decode(title, "UTF-8");//解码 E5%88%98 将解为中文
p2=URLEncoder.encode(p1,"UTF-8");//编码
配合使用

#2


request.getParameter("smstext").toString()就好使了

#3


这个在jdk1.4里可以用,但是我这边得使用jdk1.3的。
就是得在jdk1.3里将中文转换为UTF-8

#4


那你写个过滤filter吧

#5


可能是不了解getParameter方法的内部工作细节造成的 
getParameter方法内部要先进行URL解码,其使用哪种字符集编码进行编码有一下两种依据方式
(1)当客户端采用url地址后面传递参数的时候,getParameter默认使用ISO-8859-1编码进行URL解码
(1)如果客户端采用实体内容传递参数时,getParameter方法采用getCharacterEncoding方法返回的字符集编码进行解码,如果getCharacterEncoding方法返回值为null时,才采用ISO-8859-1编码进行解码。

#1


title=URLDecoder.decode(title, "UTF-8");//解码 E5%88%98 将解为中文
p2=URLEncoder.encode(p1,"UTF-8");//编码
配合使用

#2


request.getParameter("smstext").toString()就好使了

#3


这个在jdk1.4里可以用,但是我这边得使用jdk1.3的。
就是得在jdk1.3里将中文转换为UTF-8

#4


那你写个过滤filter吧

#5


可能是不了解getParameter方法的内部工作细节造成的 
getParameter方法内部要先进行URL解码,其使用哪种字符集编码进行编码有一下两种依据方式
(1)当客户端采用url地址后面传递参数的时候,getParameter默认使用ISO-8859-1编码进行URL解码
(1)如果客户端采用实体内容传递参数时,getParameter方法采用getCharacterEncoding方法返回的字符集编码进行解码,如果getCharacterEncoding方法返回值为null时,才采用ISO-8859-1编码进行解码。