您的位置:首页 > 数据库 > MySQL

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

2017-12-25 16:12 465 查看
这个过程中最终显示为乱码,是因为整个过程中字符编码不统一导致。

要解决该问题,就是统一字符编码。一般情况统一用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                          |

| char
4000
acter_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>    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: