wml的输入框中输入中文然后提交到一个servlet中在火狐浏览器上没有问题
但是在手机上访问的时候,接过来的参数是乱码比如我在手机环境中输入"曲线",在手机环境中接过来的参数是"??茬嚎"
用了很多转码方法
比如
response.setCharacterEncoding("gb2312");
SearchName=new String(SearchName.getBytes("ISO8859-1"),"GB2312");
都不好使,所以请教一下,谢谢,不要长篇大论,最好给些实用代码.
但是在手机上访问的时候,接过来的参数是乱码比如我在手机环境中输入"曲线",在手机环境中接过来的参数是"??茬嚎"
用了很多转码方法
比如
response.setCharacterEncoding("gb2312");
SearchName=new String(SearchName.getBytes("ISO8859-1"),"GB2312");
都不好使,所以请教一下,谢谢,不要长篇大论,最好给些实用代码.
解决方案 »
- java web 课程设计需要做一个bbs系统,需要注意那些东西呢
- select 的取值问题
- (在线)使用jupload来上传多文件
- 标签问题
- 怎样把服务器端生成的xml文件传回给客户端
- 高分问jbuilder问题,回答者均给分
- struts2运行一小时后出ClassNotFoundException
- JSP 基础问题, 送分啦。
- 晚上8点前揭贴,希望大家帮帮忙!
- 请教:system.out.println("a="+a),a是int类型的,那个+号到底起什么作用呢?
- hibernate+sping 配置文件的问题(分不够再加)
- 页面上的图片,当鼠标移到上面时,会出现打印机的小图标,我不想要这个打印机小图标,怎么办?
已经把server.xml的编码格式换成GB2312了
也没用
maxThreads="1200" minSpareThreads="10" maxSpareThreads="750"
enableLookups="false" redirectPort="8443" acceptCount="1000"
debug="0" connectionTimeout="30000"
disableUploadTimeout="true" uriencoding="GB2312" />uriencoding="GB2312" 我已经加这个了
换服务器好象不怎么现实了...
大量的工程在运行...
那针对这个tomcat有没有什么好的解决方法?
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");
<anchor title=搜索内容>
<go href=/wap/search?enterUrl="+enterUrl+"&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 是乱码
手机浏览器用GB2312编码了输入内容,并发送了该请求,tomcat使用了默认的解码字符集(ISO-8859-1)对请求进行了解码。
这时request.getParameter("name")正好得到了用错误字符集(ISO-8859-1)解码后的字符串,所以是乱码!解决办法:
首先,重新用ISO-8859-1编码,恢复到原始的请求编码,然后,再用正确的GB2312解码
URLDecoder.decode(URLEncoder.encode(SearchName, "ISO-8859-1"), "GB2312");