将字符串转换成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中各浏览器中鼠标按键值的差异
Apr 07 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
Sep 27 Javascript
JS重要知识点小结
Nov 06 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
jquery获取table中的某行全部td的内容方法
Mar 08 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
详细讲解vue2+vuex+axios
May 27 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 Javascript
layui关闭层级、简单监听的实例
Sep 06 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
tagName的使用,留一笔
2006/06/26 Javascript
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
JavaScript中的Location地址对象
2008/01/16 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
计算机本科生自荐信
2013/10/15 职场文书
产品开发计划书
2014/04/27 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
python中的sys模块和os模块
2022/03/20 Python
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android