转自 “http://www.netjsp.com/main/helpcontent.jsp?id=ff8080812b32e071012bb12f0b440d06”
JSP+MySQL的乱码问题是我站虚拟主机用户所谘询的频率最高的问题,本文以UTF8编码为例把影响编码的各个方面经行说明,以供用户参考。主要注意以下几个方面:
1.服务器向客户端发送的页面编码要设置为UTF8:
<%@ page contentType="text/html; charset=UTF-8" %>
2.页面的保存格式为UTF8:
一般编辑器默认保存的编码都是ascii,最好选择另存指定编码。
3.保证请求参数为UTF8。
如果使用GET方式传递参数,请为Tomcat的HTTP Connector设置URIEncoding参数为UTF-8。
如果使用POST方式传递参数,请使用request.setCharacterEncoding("UTF-8")。
4.MySQL数据库编码的编码可以在库、表、字段3个级别进行设置,优先级为 库 < 表 < 字段。如果库的编码为UTF8,你在创建表格及字段时没有明确指定其字符集,那么表及字段的编码就继承库的编码也为UTF8。因此如果你在表格和字段级别具体指定了字符集,那么数据库的字符集已经没有意义,不会影响你的编码。最终的编码在字段上,只要字段的编码格式正确,数据库和表的编码已经无关紧要。我站虚拟主机的数据库默认字符集就是utf8,如果你在创建表格及其字段时没有明确指定其编码,字段的编码就会是utf8了。
本站为用户创建的数据库默认编码为utf8,如果您需要其它编码,例如gbk,可以使用以下命令修改自己库的默认编码:
ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET '字符集名称'
示例:
ALTER DATABASE test DEFAULT CHARACTER SET 'gbk'
show variables like "%colla%"查看的是数据库系统的默认编码,查看自己库的默认编码应该使用mysql远程登录到数据库:
use db;
status;
示例:
mysql> status
--------------
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1
Connection id:10044
Current database:za00001
Current user:za00001@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.0.77 Source distribution
Protocol version:10
Connection:Localhost via UNIX socket
Server characterset:latin1
Db characterset:utf8
Client characterset:latin1
Conn. characterset:latin1
UNIX socket:/var/lib/mysql/mysql.sock
Uptime:39 days 20 hours 26 sec
上面信息中的Db characterset 就是自己数据库的编码!
Client characterset是客户端链接时使用的编码,使用mysql命令时要附带--default-character-set参数,否则如果你使用中文,mysql命令会显示乱码。
mysql命令有--default-character-set 参数改变客户端链接编码,那么JDBC链接如何处理呢,请看下面的地5节。
5.JDBC的url的设置。
需要设置useUnicode=true和characterEncoding=utf8这两个参数,例如:
String jdbcUrl="jdbc:mysql://localhost:3306/fcm1?useUnicode=true&characterEncoding=utf8";
如果你在xml文件中,例如context.xml里配置数据源,请将上面的&使用&来替换,例如:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/FCM"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password="passwd"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/fcm1?useUnicode=true&characterEncoding=utf8"
maxActive="4"/>
</Context>
只要保证上面5个方面没有问题,那么就不会出现乱码了,Good Luck!
分享到:
相关推荐
jsp+servlet+mysql乱码解决的 累积各路方法 最终终成正果
利用jsp+servlet实现的一个网上书城web应用,数据库使用的是MySQL,具体的处理涉及到:中文乱码的处理,购物车,订单管理,用户账户管理,商品搜索,高级搜索,登录/注册,各种系统验证。里面包含了系统的一些设计...
解决jsp+MysQL输入和输出中文乱码的方法! 解决jsp+MysQL输入和输出中文乱码的方法!
(第四代)学生信息管理系统,没有中文乱码问题,部署简单,功能全。使用最新技术开发:eclipse2022,支持java:17or8,支持mysql:8.0or5.7or.56,tomcat:10 普通用户 具有按学号学好查询学生资料功能,普通用户必须先...
解决jsp+MysQL输入和输出中文乱码的方法 配置是tomcat+mysql,版本都是最新的
mysql出了乱码可查,方便快捷,好用。jsp开发的过程中遇到的数据库端乱码解决办法都在这里了,跑不出去
非常全的中文乱码问题,从jsp页面到mysql数据库,还有tomcat服务器出现的系列乱码问题,都有提到。本人总结的文档。推荐给初学者。
Jsp输出中文的乱码问题,获取表单提交的数据时的中文乱码问题,url中的中文问题,数据库中采取的编码方式不同于utf-8怎么办
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 select version() 获取数据库版本'5.6.00' 图片无法加载是因为拦截器,修改拦截器,或者删除...
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 http://localhost:8080/exam/ select version() 获取数据库版本'5.6.00' 图片无法加载是因为...
JSP+MYSQL 库存管理系统 第一章、引言 ………………………………………………………- 3 - 第二章、仓管管理系统的概述 ……………………………………- 5 - 2.1 功能设计 …………………………………………………- 5 ...
Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定
mysql+jsp+SSH网站开发中文乱码解决方案
图书管理系统项目使用eclipse开发工具和MySql数据库进行开发,maven方式创建项目,编码格式为utf-8(如出现乱码可改成utf-8), 项目分成三层架构,数据访问层、业务逻辑层和表现层,并没有使用框架等复杂的技术,...
用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号/密码[allusers表]:admin/admin 用户账号/密码[yuangongxinxi表]: user/123456 如果运行后添加信息乱码,请设置项目GBK编码,配置...
用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号/密码[allusers表]:admin/admin 用户账号/密码[yuangongxinxi表]: user/123456 如果运行后添加信息乱码,请设置项目GBK编码,配置...
基于jsp+servlet+mysql人事工资人力资源管理系统毕业源码案例设计 功能实现: 员工角色包含以下功能:个人信息管理,员工登录,工资查询,查看公告,查看文件,请假信息添加,登录页面等功能。 管理员角色包含以下功能:...
本文档详细地介绍了如何解决MySql数据库中的中文乱码问题,此问题的解决将极大地帮助基于MySql的PHP编程、JSP编程、Servlet编程及C#或.Net编程!测试过的开发平台包括 Netbeans和Eclipse。测试过的服务器包括Apache、...
jsp 乱码详解(jsp,mysql,tomcat) 基本涵盖所有的乱码解决方法。使用的utf-8作为例子