JAVA中文乱码的一些解决方案!

 

(1)显示中文JSP页面:<%@page ContentType="text/html;chaset=gb2312" %>
(2)在Weblogic下使用JSTL在头部添加:<%@page pageEncoding="GBK"%>
(3)中文页面提交返回获取参数值时:<%request.setCharacterEncoding("gb2312");%>,
 也可以采用下面的办法统一处理,首先创建下面的类:

// ************************************************************************ //
/*
 * 创建日期 2005-9-6
 * TODO 字符编码过滤器
 
*/

package  summer.admin;

import  javax.servlet.FilterChain;
import  javax.servlet.ServletRequest;
import  javax.servlet.ServletResponse;
import  java.io.IOException;
import  javax.servlet.Filter;
import  javax.servlet.http. * ;
import  javax.servlet.ServletException;
import  javax.servlet.FilterConfig;

/**
 * 
@author Coldrain
 * TODO 字符编码过滤器
 
*/

public   class  EncodingFilter  implements  Filter {
 
protected FilterConfig filterConfig;
    
private String targetEncoding = "gb2312";
    
    
/**
     *初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
     
*/

    
public void init(FilterConfig config) throws ServletException {
        
this.filterConfig = config;
        
if(config.getInitParameter("encoding"!=null){
         
this.targetEncoding = config.getInitParameter("encoding");
        }

    }

    
    
/**
      *进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
      
*/

    
public void doFilter(ServletRequest srequest, ServletResponse  sresponse, FilterChain chain)
        
throws IOException, ServletException {
        System.out.println(
"使用以下方法对请求进行编码:encoding="+targetEncoding);   
        HttpServletRequest request 
= (HttpServletRequest)srequest;
        request.setCharacterEncoding(targetEncoding);
        chain.doFilter(srequest,sresponse); 
// 把处理权发送到下一个 
    }
   

 
public void setFilterConfig(final FilterConfig filterConfig)
 
{
  
this.filterConfig=filterConfig;
 }

    
    
//销毁过滤器
 public void destroy()
 
{
  
this.filterConfig=null;
 }

}

// ************************************************************************ //
然后在web.xml文件里添加下列配置:
   
< filter >
   
< filter - name > encoding </ filter - name >  
   
< filter - class > summer.admin.EncodingFilter </ filter - class >
 
< init - param >
     
< param - name > encoding </ param - name >
     
< param - value > gb2312 </ param - value >
 
</ init - param >
  
</ filter >
  
< filter - mapping >  
       
< filter - name > encoding </ filter - name >  
       
< url - pattern > /*</url-pattern>  
  </filter-mapping>
(4)Struts中文问题:将中文转换为Unicode字符,可以将下列内容存在一个批处理文件进行:
Set path==%path%;G:JavaCodeBugwebWEB-INFclasses
native2ascii messages.properties messages_zh_CN.properties
//G:JavaCodeBugwebWEB-INFclasses表示messages.properties文件存放路径
(5)weblogic中文问题解决直接在weblogic.xml添加下面的内容:
  <charset-params>
    <input-charset>
      <resource-path>/*</resource-path>
      <java-charset-name>GBK</java-charset-name>
    </input-charset>
  </charset-params>
(6)JBuilder中文问题解决:修改user_zh.properties文件(在系统盘Documents and Settings目录下查找):
添加相应的的字体(注意:要转换为Unicode字符,比如宋体表示宋体):
editor.display;fixed_fonts.1=Courier New
editor.display;fixed_fonts.10=Times New Roman
editor.display;fixed_fonts.2=Lucida Sans Typewriter
editor.display;fixed_fonts.3=仿宋_GB2312
editor.display;fixed_fonts.4=宋体
editor.display;fixed_fonts.5=新宋体
editor.display;fixed_fonts.6=新細明體
editor.display;fixed_fonts.7=楷体_GB2312
editor.display;fixed_fonts.8=細明體
editor.display;fixed_fonts.9=黑体
editor.display;font_family=宋体
editor.display;font_size=13

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值