Java-jsp使用JDBC访问数据库时显示乱码是怎么回事?
JSP的头部配置:
<%@page language="java" import="java.sql.*" contentType="text/html; charset=GBK"%>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=GBK">
<TITLE>JDBC的使用方法尝试</TITLE>
</HEAD>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
jsp程序乱码太正常了。
特别是和mysql合在一块的时候.
首先mysql一共有三个编码需要注意:
1,客户端编码
2,传输编码
3,结果编码
就相当于一次运输过程的三个点。
这三个你看清顺序,中间只能被兼容编码向兼容编码转换,否则会出错。
一般要用最后全部统一utf-8就不会出错。
从前端的jsp到后台的servlet 再到mysql数据 统一编码设置,比如全为utf-8 mysql字符的设置通过show variables like 'character%';查看目前编码格式 ,编辑my.cnf文件进行编码修改
<%@page language="java" import="java.sql.*" contentType="textml; charset=GBK"%> ,将GBK改为UTF-8就行了
网页是gbk编码,你的数据库可能是utf-8编码的。你改成统一的试试
1.JSP页面编码你改成utf-8;
<%@page language="java" import="java.sql.*" contentType="text/html; charset="utf-8"%>
2.servlet容器的编码格式你改成utf-8;
以tomcat为例:找到你的安装目录tomcat下面 > conf > server.xml用记事本打开添加如下的代码:URIEncoding="utf-8"
<Connector URIEncoding="UTF-8"
protocol="HTTP/1.1"
port="8080"
connectionTimeout="20000"
redirectPort="8443" />
3.mysql的编码格式你设置成utf-8;
不晓得你用的是什么数据库管理工具,那就进入命令行修改吧(进入命令行你应该会的,还有之前应该选择当前数据库,如果不会了就到www.w3school.com.cn里边去查吧)。
将下面的代码复制到命令行运行一下。
set character_set_client=utf-8;
set character_set_results=utf-8;
4.还有一个问题就是你从JSP向servlet传值的时候最好也设置一下接收信息编码。(第四项仅作为对该问题的扩展以便完善)
request.setCharacterEncoding("utf-8");
我以前也遇到了这样的问题,解题思路应该是从JSP进入servlet容器的编译到存入mysql的全过程去思考!编译的整个过程要搞明白,这个问题就容易解决了。补习一下Servlet的生命周期吧!
希望采纳,共勉共同进步,谢谢你的提问!
<meta http-equiv="Content-Type" content="text/html;charset=GBK">
还有数据库的编码还有 jsp的编码都要统一编码格式
java程序乱码的原因,基本上是编码不一致适成的,首先数据库的是编码比如是不是与你java应用层的编码一致?数据库为UTF-8,jdbc从数据读到model中否为UTF-8,然后展示到JSP页面上是否为UTF-8,同理GBK也是一样,你设置成什么编码格式统一就行了