« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称: 日志总数:29 评论数量:19 留言数量:0 访问次数:117150 建立时间:2006年5月29日 |

| |
[java与中文]乱码问题(十六) 软件技术
krf301 发表于 2007/4/16 22:48:10 |
jsp中的乱码问题
关键问题:编码,建议统一为GB2312或GBK,本文使用GB2312,GBK未测试;
【Step1】: 消除纯HTML页和JSP页在Tomcat环境下运行的乱码
这个是由于流览器无法选择编码方式造成的, 手动从IE中选择“GB2312”即可解决;也可以网页中加入META标记或Page指令; META标记如下: Page指令如下: 前面说明中已经提到, META在2K下可能不起作用(XP下时了时坏),因为简单起见,加入Page指令似乎是一个一劳永逸的事情;
总结: 加入Page指令,一定可以使纯JSP页面或HTML页面在Tomcat环境下正常显示。
【Step2】: 消除从MySQL数据库中读出中文的乱码
分为两个目标: step1: 从MySQL客户端查看中文正常, step2: 从网页中查看中文正常;
1: 在用SQL脚本创建数据库前,设置MySQL的默认编码方式为“gb2312”, 此步可以在mysql-administrator-1.1.0-rc-win.msi中完成,或者是MySQL Server向导; 这样设置完毕后再用SQL 脚本创建数据库, 注意如果SQL脚本中有设置字符集为latin1或utf-8的语句,一定要删除。 已发现目前版本《在线书店》中的SQL脚本中带有设置默认字符集为latin1,一定要删除!
创建数据库完毕后,用MySQL CC或MySQL Admin可检查所创建的数据库的字符集,如果正确,则用MySQL CC或MySQL Admin都可以正常查看中文;
2: 一般情况下,到这一步,在网页中已经基本能正常显示中文了,但凡事总有例外,可以在数据库连接串处再特别说明一下: String url ="jdbc:mysql://localhost/BookStore?useUnicode=true&characterEncoding=gb2312"; conn=DriverManager.getConnection(url,"root","");
一般情况下用 String url ="jdbc:mysql://localhost/BookStore"应该就能正常显示中文。 总结:修改MySQL Server数据库默认字符集为“GB2312”,从MySQL读出中文可正常显示;
例外: 此时仍有可能还有乱码,如本书光盘中的《在线书店》,请参见前面的说明。
【Step3】: 消除插入MySQL数据库中的中文乱码
此步比较简单,在JSP页面中加入如下代码: request.setCharacterEncoding("GB2312"); |
|
|