我用的是Tomcat服务器~~~~数据库是Mysql~~~数据库编码是gb2312~~~页面有<%@ page contentType="text/html; charset=gb2312" %>和request.setCharacterEncoding("gb2312")~~~但是表单直接传到页面显示中文~~~传到数据库数据库显示问号~~~~再传到页面也是问号~~~怎么办啊???请哪位高手指点一下啊~~~谢谢了啊~~~~
解决方案 »
- 求高效生成目录树的方法
- 在jsp中加入urlrewrite后FCKeditor无法使用应该怎么解决?
- JAVA中static类、static方法、static变量具体的使用及意义
- JFreeChart 线图坐标值过大 显示不当问题
- (在线)10分请教一个简单问题,jsp页面中value值。
- JSP中如何实现单点登录?
- 初学jsp,麻烦问一下反编译以后出现的问题怎么解决啊!
- 关于tomcat中的servlet问题,很奇怪
- jsp/servlet不用三方jar包怎么实现上传
- 请问一下这个pom.xml在哪里?
- <object id classid codebase 都是什么意思
- 双击不要把我的文本选择了。。。。
(1)将page指令中的pageEncoding设置字符集属性的值定义为”GBK“;用GBK一般不会出现什么问题;
(2)将你用request对象的那个JSP页面的字符集显示方式也改变为”GBK“,如:request.setCharacterEncoding("GBK");
(3)在你用request对象的getParameter()方法获取控件提交的值时,可以采用如下方法:
String value = new String(request.getParameter("控件名称").getBytes("GBK"));
相信你可以看懂这行代码的意思!
response.setContentType("text/html;charset=gbk");
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=utf-8");
我的就是这样解决编码问题的!
亂碼問題總結!樓主去看看吧
1.页面:<%@ page contentType="text/html; charset=GBK" pageEncoding="GBK" %>
2.用过滤器
3.考虑是get请求还是post请求,提交表单的最好用post方式,get请求既url传值可以修改 Tomcat/conf/server.xml
4.一楼的第三种方法也是可行的方法
我知道的就是这么多了,根据具体情况灵活运用,祝你成功
http://family168.com/tutorial/jsp/html/jsp-ch-02.html#jsp-ch-02-02
request.setCharacterEncoding("gb2312");
然后,使用过滤器吧。(这个方法最好使,网上代码很多的)
在源码目录下新建一个java文件,再在web.xml配一个filter。
要自己多学点哦~
public class StrTool {
public static String decode(String str) {
try {
if(str==null)
return "null";
String temp = new String(str.getBytes("ISO8859-1"), "GB2312");
return temp;
}
catch (Exception e) {
e.printStackTrace();
}
return "null";
}
}
//页面写成<%@ page contentType="text/html; charset=GBK" %>
//往数据库插入字符串时调用上面的方法.
String KJMC=StrTool.decode(request.getParameter("控件名称"));
你的pageEncoding用GBK
另外你的各张页面的<% %>里面最好开头就加:request.request.setCharacterEncoding("GBK");
记住,GB2312的地方,都改成GBK
试试看....0.0
祝你好运!