虽然解决不过还是有疑惑的地方

解决方案:

在安装目录下找到my.ini这个文件,将client和server的字符设置都改为gbk

这样就好了

用 SHOW VARIABLES LIKE 'character_set_%';命令查看字符设置 我的修改后为:

| character_set_client     | gbk
     |
| character_set_connection | gbk
     |
| character_set_database   | gbk
     |
| character_set_filesystem | binary
     |
| character_set_results    | gbk
     |
| character_set_server     | gbk
     |
| character_set_system     | utf8

这样修改后 试验:

创建数据库 表:

create database java;

use java;

CREATE TABLE person
(
    id varchar(20) not null primary key ,
    name varchar(20) ,
    password varchar(20)
) ;

INSERT INTO person VALUES ('helle','你好','zzzzzz') ;

commit;

登陆界面:;login.jsp:

 


验证界面:login_conf.jsp:

 

 


成功页面:login_success.jsp:

 

 

>

不过不明白的地方还是很多的:我只是修改了数据库中的编码 是用gbk来存了,可是在程序中我也没有写类似过滤器的代码,

 

以前我还在程序页面开头 加了:

<%
    request.setCharacterEncoding("gb2312");
    response.setCharacterEncoding("gb2312");  
%>

发现把这两句都删了 在成功页面还是能取出中文字符的

不知道为何 ?

今天可能明白一点了,写下:

request.setCharacterEncoding("gb2312");是设置用户jsp界面向服务器提交中文时用的。

上面的之所以去掉没有什么变化是因为:我们没有从jsp中提交数据,我们只是从数据库中读取了数据,在mysql5.0中设置好了 编码gbk后 自动就会在连接url中添加设置编码为gbk

到目前 估计对这个编码问题理解的还好了一点 了吧

相关文章: