将字符串转换成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 01 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
js获得参数的getParameter使用示例
Feb 26 Javascript
jquery插件开发之实现md5插件
Mar 17 Javascript
浅谈页面装载js及性能分析方法
Dec 09 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
JS实现给对象动态添加属性的方法
Jan 05 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
详解组件库的webpack构建速度优化
Jun 18 Javascript
微信小程序实现搜索功能
Mar 10 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程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
动态加载js和css(外部文件)
2013/04/17 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
TensorFlow实现模型评估
2018/09/07 Python
python多进程控制学习小结
2018/10/31 Python
使用Python 统计高频字数的方法
2019/01/31 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
什么是python的必选参数
2020/06/21 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
python基于opencv 实现图像时钟
2021/01/04 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
学习演讲稿范文
2014/05/10 职场文书
机动车登记业务委托书
2014/10/08 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
工会工作个人总结
2015/03/03 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL