当用Eclipse做编辑器开发jsp页面时,jetty启动服务会发生中文乱码现象,但用tomcat中文则正常。
一开始我以为是我后台代码没有做编码的转码设置,经过网上的一系列文档的检查调整后,中文还有乱码。
但后来我发现当我直接访问jsp,不经过后台代码跳转时,现象一样。这是我确认是我的jsp页面本身的问题。
当我选中jsp页面右击属性后,查看编码类型为ISO8859-1,经过修改后改为UTF-8,再次访问jsp页面,还是乱码。
这时我又修改Eclipse的window-》property中的web中jsp页面的设置和contranter的jsp页面的编码设置,改为UTF-8,测试后还是乱码。
我的jsp页面用到了include标签,我有一个公用的头文件页面,页面中已经写了pageEncoding=”UTF-8″,如下
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
但我的这个乱码页面没有写这句。最后我将每个jsp页面都加上这句话后,再次测试,中文正常,乱码不见了。
总结:
jsp页面应在第一句话写上编码的设置,无论是页面有没有引用其他的页面。
当然可能是tomcat对中文的兼容好,所以用tomcat作为服务器后jsp页面则不需要每个页面都要加编码设置的设置。