将字符串转换成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 相关文章推荐
javascript 使td内容不换行不撑开
Nov 29 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
May 25 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
React中jquery引用的实现方法
Sep 12 jQuery
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
Jul 03 Javascript
详解jquery和vue对比
Apr 16 jQuery
vue element-ui实现input输入框金额数字添加千分位
Dec 29 Javascript
原生JS生成指定位数的验证码
Oct 28 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 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
php上传文件常见问题总结
2015/02/03 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
集团薪酬管理制度
2014/01/13 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
公司晚会主持词
2014/03/22 职场文书
毕业论文评语大全
2014/04/29 职场文书
质量保证书格式
2015/02/27 职场文书