处理js乱码问题

1

js传递带中文的用encodeURIComponent编译

var f_nickname = encodeURIComponent($('#' + divId + '_nickname').val());

后台获取

String nickname	= yText.UrlDecode(ToolUtil.getCh(request, "nickname"));

yText.java

public static String UrlEncode(String str) {
		try {
			return URLEncoder.encode(str, "UTF-8");
		} catch (Exception e) {
			//e.printStackTrace();
			return null;
		}
	}

	public static String UrlDecode(String str) {
		try {
			return URLDecoder.decode(str, "UTF-8");
		} catch (Exception e) {
			//e.printStackTrace();
			return null;
		}
	}

public static String getCh(HttpServletRequest request, String name) {
		ChineseSet set = new ChineseSet();
		return set.getChinese(request.getParameter(name));
	}

2

// 对给定字符进行 URL 编码
	public String encode(String str){
		if(str!=null)
		{
			try {
				str = java.net.URLEncoder.encode(str,"GBK");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		return str;
	}

	// 对给定字符进行 URL 解码
	public String decode(String str){
		if(str!=null)
		{
			try {
				str = java.net.URLDecoder.decode(str,"GBK");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		return str;
	}

3

js 转码两次

var f_nickname = escape(escape(($('#' + divId + '_nickname').val()));

后台获取

public static String ajaxToString(HttpServletRequest request, String name) {
		if(request.getParameter(name)==null)
			return null;
		String value = request.getParameter(name);
		//Tool.iso2charset(rewrite_url, "GBK");
		return Escape.unescape(Escape.unescape(value));
	}

demo链接:http://pan.baidu.com/s/1cxx59O 密码:gnkt

猜你喜欢

转载自my.oschina.net/u/3500033/blog/1563178