JSP页面是UTF-8
过滤器 public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}tomcat的server.xml<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
以上我配置了这些,使用struts时解决了中文乱码问题,我纳闷的是,当我把这三项配置都改成GBK时,竟然会出现中文乱码。
我之所以想改成GBK是因为,我写javascript在一个js文件里(js文件的编号是GBK,因为UTF-8的话写中文在文件里面会出现乱码),然后在jsp页面引用这个js文件<script src="xxxx.js"/>,可是在执行jsp页面时,javascript执行代码时得到的是乱码。
比如弹出一个提示框,上面的消息是乱码,但是js文件的中文是可以显示的,因为编码是GBK,当我把jsp的编码改成和js的编码一样时,也就是jsp改成GBK,这样执行jsp页面时,javascript执行时就不会出现乱吗了,可是问题这样jsp那边添加数据到数据库时就会出现乱码,这实在是让我头疼。
总的来说就是想解决,jsp这边处理数据不出现乱码,javascript这边也不出现乱码
过滤器 public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}tomcat的server.xml<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
以上我配置了这些,使用struts时解决了中文乱码问题,我纳闷的是,当我把这三项配置都改成GBK时,竟然会出现中文乱码。
我之所以想改成GBK是因为,我写javascript在一个js文件里(js文件的编号是GBK,因为UTF-8的话写中文在文件里面会出现乱码),然后在jsp页面引用这个js文件<script src="xxxx.js"/>,可是在执行jsp页面时,javascript执行代码时得到的是乱码。
比如弹出一个提示框,上面的消息是乱码,但是js文件的中文是可以显示的,因为编码是GBK,当我把jsp的编码改成和js的编码一样时,也就是jsp改成GBK,这样执行jsp页面时,javascript执行时就不会出现乱吗了,可是问题这样jsp那边添加数据到数据库时就会出现乱码,这实在是让我头疼。
总的来说就是想解决,jsp这边处理数据不出现乱码,javascript这边也不出现乱码
<script type=”text/javascript” src=”xxxx.js” charset=”utf-8″></script>
response.setCharacterEncoding("UTF-8");
请求和相应都要设置
GBK 中文占 2个字节你可以试试在中文网页上点右键,然后encoding选择不同的字符集 会出现不同的结果。
如何将js文件的编码改成utf-8呢?这样做:
1. 在Eclipse中新建一个js文件,点取文件属性,设置其字符集为utf-8
2. 在Eclipse中将原先的js文件打开(GBK编码的那个),拷贝全部文本到前面那个js文件中
3. 删除老文件,新文件保存并更名切忌直接在老文件上调整字符集,肯定会出现乱码。然后,用1楼说的方式往页面中引入js这样做比全部改GBK工作量小一些。
<constant name="struts.i18n.encoding" value="gbk"></constant>
运行中输入notepad新建一个txt文件把js内容粘到txt文件中然后保存时编码选utf-8保存很有用。