开发过程遇到的中文乱码问题如何解决

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

10年积累的网站设计制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有武强免费网站建设让你可以放心的选择与我们合作。

解决方法:

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

  
 
  1. show variables like "%char%"; 

 

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

  
 
  1. SET character_set_client='utf8'; 
  2. SET character_set_connection='utf8'; 
  3. SET character_set_results='utf8'; 

也可设置成gbk编码;

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

  
 
  1. default-character-set=utf-8 

2.jsp页面乱码问题

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

只需在页面头部修改为

 
 
  1. <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> 

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

 
 
  1.    

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

在数据库连接时

  
 
  1. jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 

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

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

先变写一个过滤器

  
 
  1. package com.oumyye.util; 
  2.  
  3. import java.io.IOException; 
  4.  
  5. import javax.servlet.Filter; 
  6. import javax.servlet.FilterChain; 
  7. import javax.servlet.FilterConfig; 
  8. import javax.servlet.ServletException; 
  9. import javax.servlet.ServletRequest; 
  10. import javax.servlet.ServletResponse; 
  11.  
  12. public class CharacterEncodingFilter implements Filter{ 
  13.  
  14.     protected String encoding = null; 
  15.     protected FilterConfig filterConfig = null; 
  16.  
  17.     public void init(FilterConfig filterConfig) throws ServletException { 
  18.         this.filterConfig = filterConfig; 
  19.         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; 
  20.     } 

 在web.xml中配置 

  
 
  1.  
  2.  
  3.   0001web 
  4.    
  5.      
  6.         CharacterEncodingFilter 
  7.         com.oumyye.util.CharacterEncodingFilter 
  8.          
  9.             encoding 
  10.             UTF-8 
  11.          
  12.      
  13.      
  14.         CharacterEncodingFilter 
  15.         /* 
  16.         REQUEST 
  17.         FORWARD 
  18.      

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

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

  
 
  1. String newnewname=new String(name.getBytes("iso-8859-1"),"utf-8")) 

#p#

附:JSP中的编码设置

1. pageEncoding:<%@ page pageEncoding="UTF-8"%>

设置JSP编译成Servlet时使用的编码    

2. contentType: <%@ page contentType="text/html; charset=UTF-8"%>

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

3. html页面charset:

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

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页面中

一样

新闻标题:开发过程遇到的中文乱码问题如何解决
本文URL:http://www.csdahua.cn/qtweb/news8/289908.html

成都网站优化推广公司_创新互联,为您提供面包屑导航关键词优化移动网站建设品牌网站建设动态网站网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网