关于 乱码
第一个JSP叶面 :
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.util.*" %>
<Script language="javascript" >
function dooo() {
window.open("b.jsp?username='春玥'","","TOP=0,LEFT=0,scrollbars=yes,resizable=yes,width="+screen.width+",height="+screen.height+"");
window.close();
}
</Script>
<body onload="dooo()">
</body>
b.jsp中 :
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.util.*" %>
<%
out.println(request.getParameter("username"));
%>
结果 :打印 出 乱码。
因为2个叶面在2个系统中。所以,通过url的 方式 。
问题点数:0、回复次数:3Top
1 楼joec21()回复于 2006-07-03 15:45:22 得分 0
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.util.*" %>
<%
String user=new String(request.getParameter("username").getBytes("ISO-8859-1"));
out.println(user);
%>
Top
2 楼suosuoleefdj()回复于 2006-07-04 16:20:32 得分 0
have many tries
problem still.
Top
3 楼indenty(天下之饿)回复于 2006-07-04 18:11:53 得分 0
String ecCode = URLEncoder.encode("中文","UTF-8");
后将ecCode传入js中,组成url传入后台
之后要解码处理
以下为处理查询字段代码:
private Map getQueryMap(String querystr) {
if (querystr == null)
return new HashMap(0);
String[] strarr = querystr.split("&");
String[] keyAndValue = null;
if (strarr != null && strarr.length > 0) {
Map map = new HashMap(strarr.length * 2);
for (int i = 0; i < strarr.length; i++) {
keyAndValue = getKeyAndValue(strarr[i]);
if (keyAndValue != null) {
map.put(keyAndValue[0], keyAndValue[1]);
}
}
return map;
} else
return new HashMap(0);
}
private String[] getKeyAndValue(String str) {
if (str == null)
return null;
String[] keyAndValue = new String[2];
int pos = str.indexOf("=");
if (pos == -1) {
keyAndValue[0] = str;
} else {
keyAndValue[0] = str.substring(0, pos);
keyAndValue[1] = str.substring(pos + 1, str.length());
}
return keyAndValue;
}
利用以上方法
Map map = getQueryMap(request.getQueryString());
s = (String)map.get("userName");
String dCode = URLDecoder.decode(s,"UTF-8");
就行了!Top




