`
xiangqian0505
  • 浏览: 322299 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS解决后台 繁体乱码 问题

阅读更多

脚本处理文本框内容

var name_s= document.getElementById("name_s").value; var param='name_s1='+escape(name_s); param=encodeURI(param); document.forms(0).action = "fun.getSession('PATH')/expPrepaidPhoneRecordsStatements.do?"+param; 

 后台java方法处理

String name=EncodeUtil.unescape(request.getParameter("name_s1")); 

 Java方法

/**
	 * Ajax调用时转码 在页面上使用prototype的escape()方法转码后字符串传到后台,需要用此方法转会gb2312
	 * <p>
	 * 例如:unescape(%u4E2D%u6587)会得到 "中文"
	 * </p>
	 * 
	 * @param s
	 *            转换前的源字符串
	 * @see EncodingUtil#escape(String)
	 * @return 转换后的字符串
	 */
	public static String unescape(String s) {
		if (s == null || s.equals("")) {
			return "";
		}
		StringBuffer sbuf = new StringBuffer();
		int i = 0;
		int len = s.length();
		while (i < len) {
			int ch = s.charAt(i);
			if (ch == '+') { // + : map to ' '
				sbuf.append(' ');
			} else if ('A' <= ch && ch <= 'Z') { // 'A'..'Z' : as it was
				sbuf.append((char) ch);
			} else if ('a' <= ch && ch <= 'z') { // 'a'..'z' : as it was
				sbuf.append((char) ch);
			} else if ('0' <= ch && ch <= '9') { // '0'..'9' : as it was
				sbuf.append((char) ch);
			} else if (ch == '-'
					|| ch == '_' // unreserved : as it was
					|| ch == '.' || ch == '!' || ch == '~' || ch == '*'
					|| ch == '\'' || ch == '(' || ch == ')') {
				sbuf.append((char) ch);
			} else if (ch == '%') {
				int cint = 0;
				if ('u' != s.charAt(i + 1)) { // %XX : map to ascii(XX)
					cint = (cint << 4) | val[s.charAt(i + 1)];
					cint = (cint << 4) | val[s.charAt(i + 2)];
					i += 2;
					// 此处也可以不处理
					// 因为页面传过来的时候ascii不会被传过来。
				} else { // %uXXXX : map to unicode(XXXX)
					cint = (cint << 4) | val[s.charAt(i + 2)];
					cint = (cint << 4) | val[s.charAt(i + 3)];
					cint = (cint << 4) | val[s.charAt(i + 4)];
					cint = (cint << 4) | val[s.charAt(i + 5)];
					i += 5;
				}
				sbuf.append((char) cint);
			} else { // 对应的字符未经过编码
				sbuf.append((char) ch);
			}
			i++;
		}
		return sbuf.toString();
	}

 

分享到:
评论

相关推荐

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决

    网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...

    js base64 解码解决中文乱码问题

    使用方法:utf8to16(base64decode(你的加密字符串));

    jquery自动补全示例。包括后台,中文乱码解决JS

    本示例将涵盖如何使用jQuery实现自动补全功能,包括解决中文乱码问题以及常用属性配置。 ### 1. jQuery自动补全基本原理 jQuery 自动补全基于jQuery库,通过监听用户在输入框中的输入事件,实时查询预定义的数据集...

    Fckeditor以及js_validation解决中文乱码问题

    ### Fckeditor及js_validation解决中文乱码问题详解 #### 一、FCKEditor简介与中文乱码背景 FCKEditor是一款强大的在线富文本编辑器,它支持多种浏览器,并且能够提供丰富的编辑功能,如字体样式调整、图片上传、...

    解决gb2312编码导致乱码问题

    描述中提到的“使用方法见本人博客《IE中js往后台传输中文乱码》”,暗示了解决这个问题可能需要在JavaScript(JS)中进行操作,特别是在与Internet Explorer(IE)浏览器交互时。IE在处理编码方面有一些独特的行为...

    ajax提交,后台中文乱码解决

    本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,开发者通过调用`encodeURIComponent()`或`encodeURI()`函数对请求URL中的参数进行编码。...

    页面中文和后台服务器端接收中文乱码问题完全解决

    ### 页面中文和后台服务器端接收中文乱码问题完全解决 #### 概述 在Web开发过程中,中文乱码问题是常见的技术难题之一。特别是在早期的Web应用程序中,由于编码标准不统一,不同系统间的编码方式差异等原因,导致...

    ajax提交中文乱码解决方法

    为了解决AJAX提交中文乱码的问题,可以从以下几个方面入手: ##### 1. 客户端编码处理 - **使用`URLEncoder`编码**:在发送请求之前,可以先使用Java的`URLEncoder.encode()`方法将中文字符串进行编码,然后再发送...

    js传值后台中文出现乱码的解决方法

    总结来说,通过在前端进行正确的编码处理,并在后端通过正确的解码方法还原数据,我们能够有效地解决js传值后台中文乱码的问题。同时,熟练掌握JavaScript的各项操作技巧,对于提升Web开发的效率和质量也有着显著的...

    乱码问题解决

    问题1:后台乱码 - 获取参数时出现乱码 当你从JavaScript前端通过HTTP请求发送编码过的参数到GBK编码的后端时,如果不进行正确的解码,就可能出现乱码。在这个问题中,前端使用了`encodeURI(encodeURI(para))`来对...

    ajax乱码解决方案

    总的来说,解决Ajax乱码问题的关键在于理解字符编码的工作原理,确保数据在整个传输过程中的编码与解码一致性,以及正确设置服务器和客户端的编码设置。在实际应用中,还应考虑跨平台和跨浏览器的兼容性,以确保解决...

    SpringMVC解决乱码

    在本文中,我们将讨论解决SpringMVC乱码问题的两种方法。 方法一:配置AnnotationMethodHandlerAdapter 在SpringMVC中,可以通过配置AnnotationMethodHandlerAdapter的messageConverters属性来指定编码。该属性是...

    中文乱码问题解决.pdf

    在上述情况中,开发者尝试解决由URL编码引发的乱码问题,主要涉及到两个方法: 方法1: 这种方法试图通过在后台将ISO-8859-1编码的字符串转换为UTF-8编码。首先,从HTTP请求中获取参数(如`work`),然后使用`...

    中文乱码问题解决.docx

    这里我们分析两种常见的解决方案,并结合问题描述来探讨如何解决中文乱码。 1. **方法1:编码转换** 这个方法的思路是将接收到的ISO-8859-1编码的字符串转换为UTF-8编码。在Java中,可以使用`getBytes()`和`new ...

    java认证_Ajax中文乱码问题及解决方法.doc

    【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...

    基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip

    本资源“基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip”提供了一个解决方案,它使得在老旧的IE6-IE8浏览器上也能生成并打印包含汉字的二维码,这在很多情况下是非常实用的,因为这些老版本的IE...

    Ajax FireFox IE 乱码兼容问题

    为了解决Ajax请求中的乱码问题,可以采取以下措施: - 在发送Ajax请求时,对URL参数进行编码,确保字符编码的一致性。使用`encodeURIComponent`函数可以将参数转换为URI组件,该函数会自动处理特殊字符和非ASCII...

Global site tag (gtag.js) - Google Analytics