将字符串转换成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 性能优化指南(3)
May 21 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
Jan 10 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
Mar 23 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
微信小程序动态添加分享数据
Jun 14 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 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
极典R601SW收音机
2021/03/02 无线电
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php微信开发之图片回复功能
2018/06/14 PHP
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python getpass实现密文实例详解
2019/09/24 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
python装饰器代码深入讲解
2021/03/01 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
毕业生如何写自荐信
2014/03/26 职场文书
2015新学期开学寄语
2015/02/26 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
地道战观后感500字
2015/06/04 职场文书
会议简报格式范文
2015/07/20 职场文书
导游词之大雁塔景区
2019/09/17 职场文书