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

jsp mysql 的乱码问题以及解决方法

2010-05-12 14:13 363 查看
jsp mysql 的乱码问题以及解决方法

经过学习,出现数据库汉字的乱码问题,主要是:写入数据库时汉字乱码

在网上找了很多办法 都没有解决,通过设置不知不觉的就解决了,印象中我改过以下参数

不知道是不是适合别人?,但还是作以记录,希望对出现这类问题的人有所帮助。

在jsp中我建议使用utf8编码方式,

我就以utf8编码为例,记录我所学到的。

mysql的设置向导不能解决编码的问题,就算你在设置过程中选了utf8,

但查看后还是latin1的编码方式

所以

1.将mysql里的my.ini文件的两个地方的编码设置为

default-character-set=utf8

2.数据库的模式设置为

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

3.同时将数据库、以及表全都设置为:utf8

以上设置完后:可以用show variables like 'character/_set/_%';命令查看

数据库的编码:

mysql> show variables like 'character/_set/_%';

+-----------------------------+--------+

| 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 |

+-----------------------------+--------+

如果那个编码和上面的不一样,可以使用以下命令进行修改

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_database=utf8;

set character_set_results=utf8;

set character_set_server=utf8;

set character_set_system=utf8;

set collation_connection=utf8;

set collation_database=utf8;

set collation_server=utf8;

通过命令设置数据库的的编码:

alter database payment character set utf8;

create database mydb character set utf8;创建时就设定数据库的编码

更改数据库编码语句:

alter database database_name default character set 'charset'

设置完后重启MYSQL服务

4.在jsp页要获取上页面的参数时,在开头的地方加上:

request.setCharacterEncoding("utf-8");

例:

<%

request.setCharacterEncoding("utf-8");

String account = request.getParameter("account"),

password = request.getParameter("password");

%>

主要是将页面的汉字转换为数据库的编码

5.jsp页面编码设置为:contentType="text/html; charset=utf-8"

通过设置编码的问题解决了,数据库和jsp的编码问题就解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: