将字符串转换成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.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
Jun 17 Javascript
详解javascript获取url信息的常见方法
Dec 19 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
Feb 14 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 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中动态修改ini配置
2014/10/14 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python实现顺时针打印矩阵
2019/03/02 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
三年级学生评语
2014/04/23 职场文书
离职感谢信
2015/01/21 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers