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

来源:互联网 发布:淘宝店招和导航做全屏 编辑:程序博客网 时间:2024/04/28 17:36

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的编码问题就解决了。

原创粉丝点击