JSP Servlet JDBC MYSQL数据库中文字符显示为乱码

2 篇文章 0 订阅
这个过程中最终显示为乱码,是因为整个过程中字符编码不统一导致。
要解决该问题,就是统一字符编码。一般情况统一用UTF-8。
下面以UTF-8为例,解决中文字符显示为乱码


1.Input 文本编辑框一般接收GB18030编码的字符
所以需要在Servlet获取数据之前将Request数据重新用UTF-8进行编码。
/* change the character encoding to utf-8. */
request.setCharacterEncoding("utf-8");


2.数据库链接使用UTF-8格式
格式如下:
jdbc:mysql://XXXXXX:XXXX/XXX?characterEncoding=utf8
例子:
jdbc:mysql://localhost:3306/resource?characterEncoding=utf8




3.设置MYSQL字符集为UTF-8,在MySQL的初始化文件my.ini中,设置如下配置项:
[client]
default-character-set=utf8


[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci




在MYSQL命令行下查看如下:
mysql> show variables like 'character%';
+--------------------------+-------------------------------+
| Variable_name            | Value                         |
+--------------------------+-------------------------------+
| character_set_client     | utf8                          |
| character_set_connection | utf8                          |
| character_set_database   | utf8                          |
| character_set_filesystem | binary                        |
| character_set_results    | utf8                          |
| character_set_server     | utf8                          |
| character_set_system     | utf8                          |
| character_sets_dir       | d:\work\mysql\share\charsets\ |
+--------------------------+-------------------------------+
8 rows in set, 1 warning (0.00 sec)




4.JSP页面使用UTF-8 编码
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>


<head>
<script>


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


</head>    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值