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这边也不出现乱码

解决方案 »

  1.   

    试下
    <script type=”text/javascript” src=”xxxx.js” charset=”utf-8″></script>
      

  2.   

    把js改成utf-8吧。编码格式要一致的。
      

  3.   

     request.setCharacterEncoding("UTF-8");
     response.setCharacterEncoding("UTF-8");
    请求和相应都要设置
      

  4.   

    因为你改成gbk的时候,插入数据的时候,估计你数据库的默认字符集不是gbk。所以出现乱码。以后再写东西的时候,所有的字符集都要设置为统一的。我前几天也是解决乱码了很久、
      

  5.   

    将数据库编码、html的charset、js的编码都统一一下,特别是js的编码可以用记事本打开然后用指定的编码保存,这样就不会出现乱码了。
      

  6.   

    utf-8  中文占 3个字节
    GBK 中文占 2个字节你可以试试在中文网页上点右键,然后encoding选择不同的字符集 会出现不同的结果。
      

  7.   

    把你的js文件的编码改成utf8,如果改完里面写的中文变乱码,那你在重新把中文更新一遍,这个没办法。
      

  8.   

    原则上同意1楼的做法。统一为utf-8你就差这一步嘛。
    如何将js文件的编码改成utf-8呢?这样做:
    1. 在Eclipse中新建一个js文件,点取文件属性,设置其字符集为utf-8
    2. 在Eclipse中将原先的js文件打开(GBK编码的那个),拷贝全部文本到前面那个js文件中
    3. 删除老文件,新文件保存并更名切忌直接在老文件上调整字符集,肯定会出现乱码。然后,用1楼说的方式往页面中引入js这样做比全部改GBK工作量小一些。
      

  9.   

    struts.xml里加个改变编码的,struts2默认支持UTF-8
    <constant name="struts.i18n.encoding" value="gbk"></constant>
      

  10.   

    把编码方式统一为utf-8 js文件可通过这中方法改成utf-8
    运行中输入notepad新建一个txt文件把js内容粘到txt文件中然后保存时编码选utf-8保存很有用。