将字符串转换成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 相关文章推荐
基于jquery的3d效果实现代码
Mar 23 Javascript
js两行代码按指定格式输出日期时间
Oct 21 Javascript
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
JS实现闭包中的沙箱模式示例
Sep 07 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 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 无限级缓存的类的扩展
2009/03/16 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
JS检测图片大小的实例
2013/08/21 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python中import学习备忘笔记
2017/01/24 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
django2笔记之路由path语法的实现
2019/07/17 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
安全生产专项整治方案
2014/05/06 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
2014年内勤工作总结
2014/11/24 职场文书
政协委员个人总结
2015/03/03 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
python中filter,map,reduce的作用
2022/06/10 Python
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript