将字符串转换成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 验证浏览器是否支持javascript的方法小结
May 17 Javascript
让你的网站可编辑的实现js代码
Oct 19 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
js简单获取表单中单选按钮值的方法
Aug 23 Javascript
JavaScript的兼容性与调试技巧
Nov 22 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
vue设计一个倒计时秒杀的组件详解
Apr 06 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
也谈 PHP 和 MYSQL
2006/10/09 PHP
Php注入点构造代码
2008/06/14 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
javascript事件问题
2009/09/05 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
python遍历小写英文字母的方法
2019/01/02 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
几个MySql的面试题
2013/04/22 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
结婚喜宴主持词
2014/03/14 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript