RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Ajax>列表

Ajax中文处理乱码问题总结

来源: 作者: 时间:2007-09-22 点击:
  乱码是经常困扰非英语Web程序开发的程序员的问题,可喜的是网上的解决方案也不少,有从客户端想办法的,有从服务端想办法的.本人收集了一些材料,总结出自认为比较容易轻松的方案如下,希望与大家一起探讨.

1.Jsp页面正确显示中文(其实这个不是Ajax的)

  页首写入:

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

  <Title>后写入:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  这样静态中文就可以显示了.

  2.Java解析XMLHttpRequest传递过来的中文.

  如果把中文直接放在URL中通过XMLHttpRequest传到Servlet中,中文会变成"??",其实这时用下列函数转一下码即可:

String type =StringUtil.getDecodeParamFromReq("type",request); // 取代了原来的request.getParameter("type");

  StringUtil类的完整代码如下:

package com.sitinspring.nnyy.util;

import javax.servlet.http.HttpServletRequest;

public final class StringUtil {
private StringUtil() {

}

public static String getDecodeParamFromReq(String paramName,
HttpServletRequest request) {
String retval = request.getParameter(paramName);

try {
// 中间用ISO-8859-1过渡
byte[] b = retval.getBytes("8859_1");

// 转换成GB2312字符
retval = new String(b, "GB2312");
} catch (Exception e) {
e.printStackTrace();
}

return retval;
}
}

  此后type将得到正确的中文.

  3.Response如何传出存在中文的xml

  很简单,在Servlet的doPost函数首部书写一下三句即可

response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");

  此后在js解析responseXML时也不需要escape函数的帮忙了.

上一篇:Java面试题
下一篇:类加载机制初探
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
Google Adsense
相关文章