jsp数据库中文乱码处理
来源:互联网 发布:wii 知乎 编辑:程序博客网 时间:2024/06/16 04:21
从服务器中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数据库中文乱码处理
- JSP中文乱码处理
- JSP中文乱码处理
- JSP中文乱码处理
- jsp中文乱码处理
- Jsp中文乱码处理
- jsp中文乱码处理
- jsp中文乱码处理
- JSP中文乱码处理
- jsp处理中文乱码
- 数据库中文乱码处理
- JSP中文乱码处理(转载)
- jsp中文乱码处理总结
- jsp中文乱码处理总结
- JSP处理中文参数乱码
- jsp中处理中文乱码
- jsp中文乱码处理问题
- JSP 中文乱码处理解决方案
- urllib 与 requests 分别搭配 beautifulsoup 的不同写法
- 华为面试题
- Oracle ADF 报错:BEA-149265
- 数据库,多对多表约束
- JVM类加载机制详解(一)JVM类加载过程
- jsp数据库中文乱码处理
- sdut-离散题目14
- 选购 显微镜
- iTerm--比Terminal(终端)更好用的命令行工具
- Linux网络编程【二】:UDP socket套接字详解
- If you encounter a maven error on your pom file saying web.xml is missing
- Java基础-异常处理、常用类
- ThreadPoolExecutor使用详解
- leetcode 139. Word Break