从服务器中JSP文件到浏览器显示页面的步骤为:

服务器JSP------>>(<%@ page   pageEncoding="GBK"%>告诉服务器JSP文件本身编码)服务器Servlet

------>>(<%@ page contentType="text/html; charset=GBK" %>告诉out输出流,输出内容的类型是html,并且内容编码是GBK)服务器HTML文件

------>>(<meta http-equiv="Content-Type" content="text/html; charset=GBK">告诉浏览器,接受到的这个文件是html类型的,并且文件内容的编码是GBK)浏览器HTML文件

------>>浏览器解析并显示接收的文件

二、JSP中存在数据库操作的情况下编码问题

JSP编译为Servlet后,数据库操作是在执行Servlet时进行的。

执行insert语句时,Servlet(就是一个.java文件)中的中文会插入到数据库中,首先要设置好本身java页面的编码为GBK,在eclipse中这样设置:

Window--Preference...--General--Workspace 下设置默认的encoding为GBK。这样就相当于声明了在数据库命令行中输入的中文为GBK编码的。其次保证被操                             作的database和table的编码都为GBK,这样做:在新建一个database后,设置这个database的编码为GBK,即执行这条语句----

alter database 数据库名 default character set 'GBK' ;

在创建table的时候声明----charset='GBK';

经过这两步后就能保证插入到数据库表中的中文不出现乱码了。

执行select语句时,既然数据库表中没有中文乱码,那么在Servlet中执行select语句从表中拿出来的中文也就不会有乱码,从而,从out输出流一直到浏览器中

显示也就不会出现中文乱码。

最后总结:

当JSP出现中文乱码时,按一下步骤检查:

1、检查JSP文件的“三处”

<%@ page language="java" contentType="text/html; charset=GBK"  pageEncoding="GBK"%>

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

2、检查database的默认字符集是否为GBK: show variables like '%char%' ;

3、检查table的默认字符集是否为GBK: show   table   status   from   数据库名   like   '%表名%' ;

4、检查表中字段(column)的默认字符集是否为GBK:show   full   columns   from   表名;

5、在以上三步中,如果出现字符集不为GBK,则应删除(先备份),再重新创建并设置默认字符集GBK;(我是直接在navicat软件修改字符集属性de)

<%@ page language="java" contentType="text/html; charset=gbk"pageEncoding="gbk" import = "java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body><%!ResultSet rs = null; %>
<p align = "center" >登记宠物信息</p>
<table width="700" border="1" align="center" bordercolor="#000000" bgcolor="#CCCCCC">
<tr><th scope="col">Animal ID</th>
<th scope="col">Animal 类型</th>
<th scope="col">Animal 名字</th>
<th scope="col">Animal 主人</th>
<th scope="col">Animal 生日</th>
<th scope="col">Animal 描述信息</th>
</tr>
<%
Connection conn = null;
Statement stmt = null;
String url  = "jdbc:mysql://localhost:3306/animalInfo";
String user = "root";
String passw = "123456";
try{Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, user, passw);stmt = conn.createStatement();rs= stmt.executeQuery("select * from animalInfo");while(rs.next()){
%><tr bgcolor="#DDDDDD">
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("ID")%></div>
</td>
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("Ani_Type")%></div>
</td>
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("Ani_Name")%></div>
</td>
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("Ani_Owner")%></div>
</td>
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("Ani_Birthday")%></div>
</td>
<td bgcolor="#DDDDDD"><div align="center"><%=rs.getString("Ani_Description")%></div>
</td>
</tr>
<%}rs.close();stmt.close();conn.close();
}catch(Exception e){e.printStackTrace();
}
%>
</table>
</body>
</html>

数据库的表:

运行结果:

jsp数据库中文乱码处理相关推荐

  1. jsp mysql中文乱码,jsp中文乱码 jsp mysql 乱码的解决方法

    jsp中文乱码 jsp mysql 乱码的解决方法 jsp中文乱码 jsp mysql 乱码要servlet里面支持中文的方法: 在dopost或者doget的第一句加上: request.setCh ...

  2. springMVC保存数据到mysql数据库中文乱码问题解决方法

    springMVC保存数据到mysql数据库中文乱码问题解决方法 参考文章: (1)springMVC保存数据到mysql数据库中文乱码问题解决方法 (2)https://www.cnblogs.co ...

  3. Mybatis插入MySQL数据库中文乱码

    Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...

  4. PHP——PHP读取MySQL数据库中文乱码解决方案

    问题描述 PHP读取MySQL数据库中文乱码 解决方案 静态页面  <head> <metahttp-equiv="Content-Type"content=&q ...

  5. php连接中文数据库乱码问题,如何解决php的数据库中文乱码问题

    php数据库中文乱码的解决办法:1.在HTML代码中的文件头中加入charset属性:2.在php代码的开始部分加入代码"charset=utf-8":3.数据库中表字段中存储中文 ...

  6. php查询mysql数据库乱码_PHP怎样处理查询MySQL数据库中文乱码?_后端开发

    PHP如何处理查询MySQL数据库中文乱码? 1.将MySQL数据库默许的编码是UTF-8: 2.在MySQL中建立表时,将字符集设置为UTF-8: 3.在PHP中查询数据之前,将数据库编码设置为UT ...

  7. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案

    python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 参考文章: (1)python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 (2)https:// ...

  8. Oracle数据库中文乱码问题解决

    Oracle数据库中文乱码问题解决 参考文章: (1)Oracle数据库中文乱码问题解决 (2)https://www.cnblogs.com/ws0316/p/11876056.html 备忘一下.

  9. java: jsp:param中文乱码

    java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8")  ...

  10. python读取oracle数据库中文乱码_PL/SQL连接Oracle数据库,中文乱码,显示问号

    PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a)      安装PL/SQL.依据自己的操作系统安 ...

最新文章

  1. 激光雷达Lidar Architecture and Lidar Design(上)
  2. 关于进程间通信的学习心得
  3. 数组中查找某个元素是否存在
  4. TP-GAN 侧脸修复
  5. idea 两次运行同一main方法 开启两个进程
  6. html post后404,为什么在vue-cli脚手架下启动的服务器POST返回404呢?WebStorm启动没有问题?...
  7. Android --- layout_marginStart和layout_marginEnd的详细讲解
  8. 牛客网 【每日一题】7月24日题目精讲—小A的柱状图
  9. H.264/AVC技术进展及其务实发展策略思考
  10. vsftp不同帐号的目录和权限
  11. LOJ 2339 「WC2018」通道——边分治+虚树
  12. 在android的jni线程C传回调函数给java
  13. 2018大盘点 | R语言中文社区十大火爆文章
  14. 对比AppScan Source和Fortify扫描AltoroJ的结果
  15. 浏览器渲染机制面试_面试 09-01.浏览器渲染机制
  16. 《Java 多线程编程核心技术》- 笔记
  17. javascript 原型链实现继承简单例子
  18. Vulkan系列教程—VMA教程(七)—Defragmentation(碎片整理)
  19. java xcap_java实现发布订阅
  20. 圆通问题频发背后的“罪与罚”

热门文章

  1. 通过CuteFTP用VBScript使用SFTP,实现Win与Linux的文件传输
  2. 鼎捷T100标准接口调用
  3. 渐进记号 Asymptotic Notations-------geeksforgeeks 翻译
  4. html 左侧居中对齐,HTML的居中对齐
  5. 计算机基础知识2019题库,2019年计算机基础考试题库(含答案)全
  6. php运行日志在哪里看,thinkphp错误日志在哪
  7. 坯子库无法一键安装插件没用_坯子插件库_SketchUp坯子库(su插件管理器)下载 v2018.3官方版 - 121下载站...
  8. 《公路测设技术》课程网课最新作业测验考试
  9. snmp使用默认团体名_CactiEZ 中文版snmp默认团体名
  10. 我的第一个app:电信宽带密码一键获取客户端