jsp开发过程遇到的中文乱码问题及亚博vip888的解决方案-亚博电竞手机版

对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码。

1.数据库编码不一致导致乱码

解决方法:

首先查看数据库编码,输入:

show variables like "%char%";

确认编码一致,如果不一致,可输入:

set character_set_client='utf8'; set character_set_connection='utf8'; set character_set_results='utf8';

也可设置成gbk编码;

也可以在安装mysql目录下修改my.ini文件

default-character-set=utf-8

2.jsp页面乱码问题

在myeclipse中jsp的默认编码为iso-8859-8;

只需在页面头部修改为

<%@page pageencoding="utf-8" contenttype="text/html; charset=utf-8" %>

在jsp页面头部加入下面这句话,告诉浏览器应该调用utf-8的字符集。

  

3.jsp连接数据库存入中文乱码

在数据库连接时

jdbc:mysql://localhost:3306/test?useunicode=true&characterencoding=utf-8

如果使用框架连接则把头文件都修改成utf-8编码即可

4.在使用struts2可使用过滤器:

先变写一个过滤器

package com.oumyye.util;  import java.io.ioexception;  import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse;  public class characterencodingfilter implements filter{      protected string encoding = null;     protected filterconfig filterconfig = null;      public void init(filterconfig filterconfig) throws servletexception {         this.filterconfig = filterconfig;         this.encoding = filterconfig.getinitparameter("encoding");     }      public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception {         if (encoding != null) {             request.setcharacterencoding(encoding);             response.setcontenttype("text/html; charset=" encoding);         }         chain.dofilter(request, response);     }      public void destroy() {         this.encoding = null;         this.filterconfig = null;     } }

在web.xml中配置

    0001web                 characterencodingfilter         com.oumyye.util.characterencodingfilter                      encoding             utf-8                            characterencodingfilter         /*         request         forward     

在表单中只能使用post传值,此方法对于get无效。

5 处理单个字符串的中文乱码问题

string newname=new string(name.getbytes("iso-8859-1"),"utf-8"))
附:jsp中的编码设置

1. pageencoding:<%@ page pageencoding=“utf-8″%>

设置jsp编译成servlet时使用的编码

2. contenttype: <%@ page contenttype=“text/html; charset=utf-8″%>

对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码

3. html页面charset:<meta http-equiv=“content-type” content=“text/html; charset=utf-8″>

网页的编码信息 ,说明页面制作所使用的编码

4. request.setcharacterencoding()  — 可用在servlet和jsp页面中

作用是设置对客户端请求进行重新编码的编码,即post方式提交的数据进行编码。

5. response.setcharacterencoding() — 可用在servlet和jsp页面中

对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,与<%@ page contenttype=“text/html;charset=utf-8″%>一样

6. response.setcontenttype() — 可用在servlet和jsp页面中

对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,与<%@ page contenttype=“text/html;charset=utf-8″%>一样 

7.response.setheader(“content-type”,”text/html;charset=utf-8″);   — 可用在servlet和jsp页面中

与<meta http-equiv=“content-type” content=“text/html; charset=utf-8″>一样

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图