将字符串转换成gb2312或者utf-8编码的参数(js版)


Posted in Javascript onApril 10, 2013

在很多时候,我们直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢?

下面我们来介绍一下方法
1、我们新建一个 UrlEncode.js 然后将下面的代码拷贝进去

//JS版的Server.UrlEncode编码函数 
String.prototype.UrlEncodeGB2312 = function () { 
var str = this; 
str = str.replace(/./g, function (sHex) { 
window.EnCodeStr = ""; 
window.sHex = sHex; 
window.execScript('window.EnCodeStr=Hex(Asc(window.sHex))', "vbscript"); 
return window.EnCodeStr.replace(/../g, "%{blogcontent}amp;"); 
}); 
return str; 
} 
String.prototype.UrlEncode = function () { 
var s = escape(this); 
var sa = s.split("%"); 
var retV = "", retE = ""; 
if (sa[0] != "") { 
retV = sa[0]; 
} 
for (var i = 1; i < sa.length; i++) { 
if (sa[i].substring(0, 1) == "u") { 
retV += Hex2Utf8(Str2Hex(sa[i].substring(1, 5))); 
if (sa[i].length > 4) 
retV += sa[i].substring(5); 
} 
else retV += "%" + sa[i]; 
} 
return retV; 
} 
function Str2Hex(s) { 
var c = ""; 
var n; 
var ss = "0123456789ABCDEF"; 
var digS = ""; 
for (var i = 0; i < s.length; i++) { 
c = s.charAt(i); 
n = ss.indexOf(c); 
digS += Dec2Dig(eval(n)); 
} 
return digS; 
} 
function Dec2Dig(n1) { 
var s = ""; 
var n2 = 0; 
for (var i = 0; i < 4; i++) { 
n2 = Math.pow(2, 3 ? i); 
if (n1 >= n2) { 
s += '1'; 
n1 = n1 ? n2; 
} 
else 
s += '0'; 
} 
return s; 
} 
function Dig2Dec(s) { 
var retV = 0; 
if (s.length == 4) { 
for (var i = 0; i < 4; i++) { 
retV += eval(s.charAt(i)) * Math.pow(2, 3 ? i); 
} 
return retV; 
} 
return -1; 
} 
function Hex2Utf8(s) { 
var retS = ""; 
var tempS = ""; 
var ss = ""; 
if (s.length == 16) { 
tempS = "1110" + s.substring(0, 4); 
tempS += "10" + s.substring(4, 10); 
tempS += "10" + s.substring(10, 16); 
var sss = "0123456789ABCDEF"; 
for (var i = 0; i < 3; i++) { 
retS += "%"; 
ss = tempS.substring(i * 8, (eval(i) + 1) * 8); 
retS += sss.charAt(Dig2Dec(ss.substring(0, 4))); 
retS += sss.charAt(Dig2Dec(ss.substring(4, 8))); 
} 
return retS; 
} 
return ""; 
}

2、使用方法,当然就是我们的((字符串.UrlEncode() )就可以将字符串转换为utf-8编码的url参数((字符串.UrlEncodeGB2312() )就可把字符串转换成gb2312编码的参数,很好吧,O(∩_∩)O哈哈~
Javascript 相关文章推荐
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
jquery 插件开发方法小结
Oct 23 Javascript
Jquery之美中不足小结
Feb 16 Javascript
20款超赞的jQuery插件 Web开发人员必备
Feb 26 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
JavaScript实现旋转木马轮播图
Mar 16 Javascript
JS sort排序详细使用方法示例解析
Sep 27 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 #Javascript
图片无缝滚动代码(向左/向下/向上)
Apr 10 #Javascript
裁剪字符串trim()自定义改进版
Apr 10 #Javascript
关于JS管理作用域的问题
Apr 10 #Javascript
js异常捕获方法介绍
Apr 10 #Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 #Javascript
关于IE BUG与字符串截取substr的解决办法
Apr 10 #Javascript
You might like
php 字符串替换的方法
2012/01/10 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
JavaScript 调试器简介
2009/02/21 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Python函数嵌套实例
2014/09/23 Python
python 检查文件mime类型的方法
2018/12/08 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
用Python开发app后端有优势吗
2020/06/29 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
佳能法国商店:Canon法国
2019/02/14 全球购物
params有什么用
2016/03/01 面试题
海南地接欢迎词
2014/01/14 职场文书
通信研究生自荐信
2014/02/01 职场文书
小学评语大全
2014/04/22 职场文书
企业精神口号
2014/06/11 职场文书
525心理活动总结
2014/07/04 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书