脚本处理文本框内容
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前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...
使用方法:utf8to16(base64decode(你的加密字符串));
本示例将涵盖如何使用jQuery实现自动补全功能,包括解决中文乱码问题以及常用属性配置。 ### 1. jQuery自动补全基本原理 jQuery 自动补全基于jQuery库,通过监听用户在输入框中的输入事件,实时查询预定义的数据集...
### Fckeditor及js_validation解决中文乱码问题详解 #### 一、FCKEditor简介与中文乱码背景 FCKEditor是一款强大的在线富文本编辑器,它支持多种浏览器,并且能够提供丰富的编辑功能,如字体样式调整、图片上传、...
描述中提到的“使用方法见本人博客《IE中js往后台传输中文乱码》”,暗示了解决这个问题可能需要在JavaScript(JS)中进行操作,特别是在与Internet Explorer(IE)浏览器交互时。IE在处理编码方面有一些独特的行为...
本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,开发者通过调用`encodeURIComponent()`或`encodeURI()`函数对请求URL中的参数进行编码。...
### 页面中文和后台服务器端接收中文乱码问题完全解决 #### 概述 在Web开发过程中,中文乱码问题是常见的技术难题之一。特别是在早期的Web应用程序中,由于编码标准不统一,不同系统间的编码方式差异等原因,导致...
为了解决AJAX提交中文乱码的问题,可以从以下几个方面入手: ##### 1. 客户端编码处理 - **使用`URLEncoder`编码**:在发送请求之前,可以先使用Java的`URLEncoder.encode()`方法将中文字符串进行编码,然后再发送...
总结来说,通过在前端进行正确的编码处理,并在后端通过正确的解码方法还原数据,我们能够有效地解决js传值后台中文乱码的问题。同时,熟练掌握JavaScript的各项操作技巧,对于提升Web开发的效率和质量也有着显著的...
问题1:后台乱码 - 获取参数时出现乱码 当你从JavaScript前端通过HTTP请求发送编码过的参数到GBK编码的后端时,如果不进行正确的解码,就可能出现乱码。在这个问题中,前端使用了`encodeURI(encodeURI(para))`来对...
总的来说,解决Ajax乱码问题的关键在于理解字符编码的工作原理,确保数据在整个传输过程中的编码与解码一致性,以及正确设置服务器和客户端的编码设置。在实际应用中,还应考虑跨平台和跨浏览器的兼容性,以确保解决...
在本文中,我们将讨论解决SpringMVC乱码问题的两种方法。 方法一:配置AnnotationMethodHandlerAdapter 在SpringMVC中,可以通过配置AnnotationMethodHandlerAdapter的messageConverters属性来指定编码。该属性是...
在上述情况中,开发者尝试解决由URL编码引发的乱码问题,主要涉及到两个方法: 方法1: 这种方法试图通过在后台将ISO-8859-1编码的字符串转换为UTF-8编码。首先,从HTTP请求中获取参数(如`work`),然后使用`...
这里我们分析两种常见的解决方案,并结合问题描述来探讨如何解决中文乱码。 1. **方法1:编码转换** 这个方法的思路是将接收到的ISO-8859-1编码的字符串转换为UTF-8编码。在Java中,可以使用`getBytes()`和`new ...
【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...
本资源“基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip”提供了一个解决方案,它使得在老旧的IE6-IE8浏览器上也能生成并打印包含汉字的二维码,这在很多情况下是非常实用的,因为这些老版本的IE...
为了解决Ajax请求中的乱码问题,可以采取以下措施: - 在发送Ajax请求时,对URL参数进行编码,确保字符编码的一致性。使用`encodeURIComponent`函数可以将参数转换为URI组件,该函数会自动处理特殊字符和非ASCII...