将字符串转换成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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
jquery $.ajax相关用法分享
Mar 16 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
Javascript的表单验证-提交表单
Mar 18 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
May 17 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
Apr 19 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
Aug 30 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
使用Node搭建reactSSR服务端渲染架构
Aug 30 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 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 IE中下载附件问题解决方法
2014/01/07 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php以post形式发送xml的方法
2014/11/04 PHP
PHPMailer发送邮件
2016/12/28 PHP
javascript中直接写php代码的方法
2013/07/31 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
详解JS数值Number类型
2018/02/07 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Django中的静态文件管理过程解析
2019/08/01 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
阿德的梦教学反思
2014/02/06 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
支部鉴定材料
2014/06/02 职场文书
小学老师对学生的评语
2014/12/29 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android