日期:2014-05-17  浏览次数:20880 次

三大框架整合过程中遇到的乱码问题
jsp页面如下
  <%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="/struts-tags" prefix="s"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link href="/TestJXC2/images/skin.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso8859-1" />
<script type="text/javascript">
function modify(id,i){
var dname=document.all.name;
var deptName='';
if(dname.value==undefined){
deptName=dname[i].value;
}else{
deptName=dname.value;
}
window.parent.frames("main").location.href="/TestJXC2/dept/deptAction_modifyDept.do?deptId="+id+"&deptName="+deptName;
}
其中传输的是汉字

action中代码如下:
  第一种情况:这种直接是乱码
  public String modifyDept(){
Dept dept=new Dept();
dept.setDeptId(deptId);
dept.setDeptName(deptName);
  }
  由于通过地址栏传送的数据一般是ISO8859-1,所以我运用了如下代码
  产生的问题是转码结果的最后一个汉字是乱码,即使成功了,几率就是1%,
  public String modifyDept(){
Dept dept=new Dept();
dept.setDeptId(deptId);
String dname=null;
try {
dname=new String(deptName.getBytes("iso8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dname);
dept.setDeptName(dname);
  }
  如何解决,急!!!

------解决方案--------------------
一般从项目源,到页面,均用utf-8就没有问题了。
实在不行你试试在web.xml里加一下过滤编码为utf-8
HTML code

    <filter>
        <filter-name>CharacterFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

------解决方案--------------------
charset=iso8859-1" 
改成
charset=utf-8" 
试试。
------解决方案--------------------
在js中:把你的url转换一下
url=encodeURI(url,"UTF-8");
------解决方案--------------------
1.<meta http-equiv="Content-Type" content="text/html; charset=iso8859-1" />
这里的iso8859-1修改为utf-8
2.可以在web.xml中配置统一的过滤器,针对跳转路径啥的进行统一处理