这是一个在 ASP VBScript 里绝对不会出现的问题,但是在 JSP 里出现了,实在让人苦恼:我制作了两个 JSP 网页,A 和 B,A 里头有文本框和提交按钮,指向网页 B。但是,当我在 A 里头输入汉字,点提交之后,B 接收到的总是乱码(我设了 println 监测语句,比方说输入“中国”,Eclipse 的事件监视栏里就显示三个问号加一个“ú”)。我在 A B 两个页面里都加入了 <%@page contentType="text/html; charset=GBK" pageEncoding="GBK"%> 和 <meta http-equiv="Content-Type" content="text/html; charset=GBK">(放在 head 部分)这两行语句,但是都不管事。这样的话,我根本没有办法做一个中文搜索引擎(像 ASP 传递的结果就不会是乱码,虽然以 get 方式传参时,URL 上的参数写法是一串百分号、乱码,但传递到 request 对象里头的时候就能还原回汉字。但 JSP 却始终不行)。此事关乎本人的毕业设计,急求各位 JSP 高手相助!
解决方案 »
- 我的myeclipse8.5中无法启动tomcat6.0,但是单独使用tomcat6.0能正常使用的。在myeclipse中启动报错如下。请高手指点……
- 检查客户端是否启动了某个服务
- 请教textarea方面的问题,谢谢。。。
- struts-config.xml报这种错误,如何解决
- 请教一个jbuilder新建jsp项目的问题?
- 如何把一个中文的字符串写入一个文件中
- 关于转发和重定向的区别,两者在WEB应用中有什么实际意义
- 关于SERVLET配制的菜问题??大家帮帮我。谢谢!
- 高分相送,用jspsmartupload上传文件,在webshpere3。5环境里面很好用,但是在4。0里面就只能上传不超过7k的东东了,怎么解决这个问题,
- 服务里的错误
- 如何将Tomcat和myeclipse整合到一起
- 安全退出
charset=GBK 转花为 servlet 后 是request.setCharEncoding("GBK");
而这个设置只对 post 提交方式有效 。
URL 传中文 要么用 java.net.URLEncoder("XXX"); 进行重写。
要么在 Tomcate 的 server.xml文件中配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK">
问题是,我最开始设置的就是 post 提交方式,传过去的也是乱码!
name=new String(name.getBytes("ISO8859_1"),
"gb2312");用这个试试吧
服务器端传过来的应该是ISO8859_1编码的 需要转换成gb2312
name=new String(name.getBytes("gbk")); //gbk不行就换utf-8,试一试。或者自己写一个转码的方法。
request.setCharacterEncoding("GBK");
这位大哥的解决方法最正确,书写格式很对!getBytes() 方法,括号里填写的是 getParameter 产生乱码时的编码名,括号外才是需要转换成的编码名。而不是 5 楼那位大哥写的 getBytes("GBK"),那样执行的结果仍然是乱码。不过还是得感谢楼上所有热心提供帮助的朋友们!谢谢你们了,大家都有分数可拿!