wml的输入框中输入中文然后提交到一个servlet中在火狐浏览器上没有问题
但是在手机上访问的时候,接过来的参数是乱码比如我在手机环境中输入"曲线",在手机环境中接过来的参数是"??茬嚎"
用了很多转码方法
比如 
response.setCharacterEncoding("gb2312");
SearchName=new String(SearchName.getBytes("ISO8859-1"),"GB2312");
都不好使,所以请教一下,谢谢,不要长篇大论,最好给些实用代码.

解决方案 »

  1.   

    tomcat
    已经把server.xml的编码格式换成GB2312了
    也没用
      

  2.   

    <Connector port="8080"
                   maxThreads="1200" minSpareThreads="10" maxSpareThreads="750"
                   enableLookups="false" redirectPort="8443" acceptCount="1000"
                   debug="0" connectionTimeout="30000" 
                   disableUploadTimeout="true" uriencoding="GB2312" />uriencoding="GB2312" 我已经加这个了
      

  3.   

    tomcat5.0.x在这个地方有bug!呵呵get和post方法中只有一个是正常的,具体哪一个正常就忘记了。如果你们可以使用JDK5,建议把服务器换成tomcat5.5
      

  4.   

    晕...
    换服务器好象不怎么现实了...
    大量的工程在运行...
    那针对这个tomcat有没有什么好的解决方法?
      

  5.   

    String SearchName= URLDecoder.decode(URLEncoder.encode(SearchName, "ISO-8859-1"), "GB2312");看看这个行不行?
      

  6.   

    你试过
    String SearchName= URLDecoder.decode(URLEncoder.encode(SearchName, "ISO-8859-1"), "GB2312");
    吗?猜测的问题原因:
    手机浏览器用GB2312编码了输入类容,tomcat使用了错误的解码字符集(ISO-8859-1),所以,你得到的是乱码。
    解决办法:
    首先,重新用ISO-8859-1编码,恢复到原始的请求编码,URLEncoder.encode(SearchName, "ISO-8859-1")
    然后,再用正确的GB2312解码
    URLDecoder.decode(URLEncoder.encode(SearchName, "ISO-8859-1"), "GB2312");
      

  7.   

    =============================源代码(传参的页)
    <anchor title=搜索内容>
    <go href=/wap/search?enterUrl="+enterUrl+"&amp;MainRetuens="+MainRetuens+"
                                                   method=post accept-charset=GB2312 >
         <postfield name=name value=$name></postfield>
         <postfield name=lb value=$lb></postfield>
    </go>搜索</anchor>=====================接参的servlet
    SearchName=request.getParameter("name");   
    此时的  SearchName  是乱码
      

  8.   

    猜测的问题原因:
    手机浏览器用GB2312编码了输入内容,并发送了该请求,tomcat使用了默认的解码字符集(ISO-8859-1)对请求进行了解码。
    这时request.getParameter("name")正好得到了用错误字符集(ISO-8859-1)解码后的字符串,所以是乱码!解决办法:
    首先,重新用ISO-8859-1编码,恢复到原始的请求编码,然后,再用正确的GB2312解码
    URLDecoder.decode(URLEncoder.encode(SearchName, "ISO-8859-1"), "GB2312");