首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

SSH2解决中文乱码小结

2012-08-26 
SSH2解决中文乱码总结??? 1在Tomcat里面的server.xml把编码改成了UTF-8。???? 2新建立项目后,首先在项目的

SSH2解决中文乱码总结

??? 1在Tomcat里面的server.xml把编码改成了UTF-8。

?
??? 2新建立项目后,首先在项目的属性的Resource里把Test file encoding改为UTF-8。;如果你做到中途再设置的话,可能会改得不彻底。(我可能就是中途才把GBK改为UTF-8导致几天都解决不了,现在新建项目先设定为UTF-8才成功)

?

????3使用编码过滤器(org.springframework.web.filter.CharacterEncodingFilter),配置如下:?

<%@ page contentType="text/html;charset=UTF-8"%> 
<% request.setCharacterEncoding("UTF-8"); %>


?????? 5在struts.xml里也加上了<constant name="struts.i18n.encoding" value="UTF-8"/>

?

?????? 6连接数据库的语句jdbc:mysql://localhost:3306/数据库名?useUnicode=true&amp;characterEncoding=utf-8


?????? 7我mysql用的管理软件是Navicat,新建连接时,在”高级“里使用默认的选项,即”使用MySQL字符集“和编码是“65001(UTF-8)”。


?????? 8在Navicat里手动创建数据库时,SQL语句建表示例:

CREATE TABLE `co_admin` (   `id` int(10) NOT NULL AUTO_INCREMENT,   `name` varchar(20) NOT NULL,   `password` varchar(20) NOT NULL,   `email` varchar(20) DEFAULT NULL,   `role` int(10) NOT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; 

?

???????? 记得后面要加上DEFAULT CHARSET=utf8。


?????? 9需要转码的地方在页面和页面之间通过URL传输中文数据时才需要转码:如a.jsp链接到b.jsp时,a.jsp页面要使用String name=URLEncoder.encode( nameStr, "UTF-8")编码,然后链接href="background/manager/modifyAdmin.jsp?name=<%=name%>。b.jsp要得到中文参数要转码解码,String name=new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8")解码即可。但你使用struts标签时加在链接里作为参数传输中文参数就比较困难,如a.jsp里面的链接href="background/manager /modifyAdmin.jsp?name=name=<s:property value='name'/>,这样在a.jsp里就用不了String name=URLEncoder.encode( nameStr, "UTF-8")编码,如果你用的是IE浏览器,然后b.jsp得到中文个数如果是单数的话,如“中国人”从a转到b就会变成“中国口”,个数为双数的话就不会。如果你用的是火狐就单双数中文都系那是正常。即struts2标签库作为参数放进链接(因a.jsp没编码,b.jsp解码时就不能保证),得到中文数目为单的参数时最后一个字变成类似“口”字。

热点排行