Js字符集编码转换函数Get请求特殊字符处理
来源:互联网 发布:淘宝九元包邮 编辑:程序博客网 时间:2024/05/16 23:37
Js字符集编码转换函数
字符集转换:
1.ajax get请求的字符集乱码解决方案,发送端数据用reCode()方法编码加密,接收端用deCode()方法解码。
function reCode(str) { return encodeURIComponent(encodeURIComponent(str)); }
function deCode(str) { return decodeURIComponent(decodeURIComponent(str)); }
2.js-get请求特殊字符不可见问题(如‘+’号等):
location.href="url"+encodeURIComponent(str);
3.字符集转换函数:
对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串
encodeURIComponent,最多使用,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
/******************************
今天为这个东西搞了半天,记载下,上面的仅做参考吧,
以下是js中get方式传值特殊字符的处理:
*************************jsp之间:*********************************
/*
*js Unicode编码转换
*/
var decToHex = function(str) {
var res=[];
for(var i=0;i < str.length;i++)
res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
return "\\u"+res.join("\\u");
}
var decToHex2 = function(str) {
var res="",c;
for(var i=0;i < str.length;i++){
c=str.charCodeAt(i);
res+=(c< 32 || c==38 || c>127)?"\\u"+c.toString(16):str.charAt(i)
}
return res;
}
var hexToDec = function(str) {
str=str.replace(/\\/g,"+");
return unescape(str);
}
//var str=decToHex("decToHex unicode 编码转换");
//alert("编码后:"+str+"\n\n解码后:"+hexToDec(str));
************jsp与java:**************************************
var src = "dispatcher.jsp?requestUrl=storage/temporaryConv_confirmConversion.action&tmaterielId="+tmaterielId+"&materielId="+materielId+"&tmaterielName="+decToHex(tmaterielName)+"&materielName="+decToHex(materielName);
java中:
Unicode2GBK(tmaterielName);
/**
* 用于AJAX传来的中文参数unicode解码
* @param dataStr
* @return
*/
public static String Unicode2GBK(String dataStr) {
if (dataStr == null || "".equals(dataStr)) {
return dataStr;
}
int index = 0;
StringBuffer buffer = new StringBuffer();
while (index < dataStr.length()) {
try {
if (!"\\u".equals(dataStr.substring(index, index + 2))) {
buffer.append(dataStr.charAt(index));
index++;
continue;
}
} catch (Exception e) {
for (int j = index; j < dataStr.length(); j++) {
buffer.append(dataStr.charAt(index));
}
return buffer.toString();
}
String charStr = "";
charStr = dataStr.substring(index + 2, index + 6);
char letter = (char) Integer.parseInt(charStr, 16);
buffer.append(letter);
index += 6;
}
return buffer.toString();
}
原文:http://xinkong1010.iteye.com/blog/997411
字符集转换:
1.ajax get请求的字符集乱码解决方案,发送端数据用reCode()方法编码加密,接收端用deCode()方法解码。
function reCode(str) { return encodeURIComponent(encodeURIComponent(str)); }
function deCode(str) { return decodeURIComponent(decodeURIComponent(str)); }
2.js-get请求特殊字符不可见问题(如‘+’号等):
location.href="url"+encodeURIComponent(str);
3.字符集转换函数:
对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串
encodeURIComponent,最多使用,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
/******************************
今天为这个东西搞了半天,记载下,上面的仅做参考吧,
以下是js中get方式传值特殊字符的处理:
*************************jsp之间:*********************************
/*
*js Unicode编码转换
*/
var decToHex = function(str) {
var res=[];
for(var i=0;i < str.length;i++)
res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
return "\\u"+res.join("\\u");
}
var decToHex2 = function(str) {
var res="",c;
for(var i=0;i < str.length;i++){
c=str.charCodeAt(i);
res+=(c< 32 || c==38 || c>127)?"\\u"+c.toString(16):str.charAt(i)
}
return res;
}
var hexToDec = function(str) {
str=str.replace(/\\/g,"+");
return unescape(str);
}
//var str=decToHex("decToHex unicode 编码转换");
//alert("编码后:"+str+"\n\n解码后:"+hexToDec(str));
************jsp与java:**************************************
var src = "dispatcher.jsp?requestUrl=storage/temporaryConv_confirmConversion.action&tmaterielId="+tmaterielId+"&materielId="+materielId+"&tmaterielName="+decToHex(tmaterielName)+"&materielName="+decToHex(materielName);
java中:
Unicode2GBK(tmaterielName);
/**
* 用于AJAX传来的中文参数unicode解码
* @param dataStr
* @return
*/
public static String Unicode2GBK(String dataStr) {
if (dataStr == null || "".equals(dataStr)) {
return dataStr;
}
int index = 0;
StringBuffer buffer = new StringBuffer();
while (index < dataStr.length()) {
try {
if (!"\\u".equals(dataStr.substring(index, index + 2))) {
buffer.append(dataStr.charAt(index));
index++;
continue;
}
} catch (Exception e) {
for (int j = index; j < dataStr.length(); j++) {
buffer.append(dataStr.charAt(index));
}
return buffer.toString();
}
String charStr = "";
charStr = dataStr.substring(index + 2, index + 6);
char letter = (char) Integer.parseInt(charStr, 16);
buffer.append(letter);
index += 6;
}
return buffer.toString();
}
原文:http://xinkong1010.iteye.com/blog/997411
- Js字符集编码转换函数Get请求特殊字符处理
- GET请求特殊字符处理
- get请求中特殊字符的处理
- GET请求中参数含有某些特殊字符的处理
- ajax之get方式请求对特殊字符的处理
- JS处理特殊字符
- JS处理特殊字符
- js 处理特殊字符
- 在js中处理特殊字符对应的中文编码
- 特殊请求地址编码转换
- Java http处理get请求,参数中带特殊字符处理方式
- 字符集编码问题(get/post请求,tomcat有不同的处理)
- Ajax 以GET方式请求时,参数中包含 "#" 特殊字符的处理
- php js特殊字符处理
- js前端特殊字符处理
- 字符编码转换函数
- 网络请求特殊字符处理问题
- javaWeb超链接(href)请求-特殊字符处理
- UVa 673 - Parentheses Balance
- Android GridView 实现SQLite分页表格
- 使用UIScrollView和UIPageControl显示半透明帮助蒙板
- 1037. Magic Coupon_两数字序列乘法
- 用Subst.exe虚拟磁盘
- Js字符集编码转换函数Get请求特殊字符处理
- Java (堆和栈),内存地址,==,equals,hashCode
- 你真的已经搞懂JavaScript了吗?
- 利用【淘宝IP地址库】根据客户ip获取客户地理信息
- 指针数组,数组指针,指针函数,函数指针,二级指针详解
- 为文件的每一行后面添加特定字符串
- objective-c 新语法特性
- LED灯驱动程序tiny6410
- php分页类