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中配置统一的过滤器,针对跳转路径啥的进行统一处理