- 浏览: 520948 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (222)
- 帖子来的 (3)
- JavaScript (25)
- Java (10)
- DataBase (2)
- el表达式 (1)
- html (4)
- FCKEDITOR和TINYMCE (3)
- tomcat (5)
- JavaEE (12)
- Eclipse (7)
- Windows (3)
- Dos命令 (1)
- Oracle (20)
- 乱搞 (1)
- AHK (3)
- TC (2)
- vim (12)
- Perl (13)
- ANT (6)
- Android (3)
- antlr (1)
- SSH (14)
- C/C++ (3)
- wordpress (4)
- CSS (3)
- java2D (1)
- Lucene (4)
- Linux (9)
- jquery (4)
- testsomething (7)
- JVM监控优化 (3)
- emacs (4)
- svn cvs版本控制 (2)
- 硬件 (1)
- j2me (2)
- maven (5)
- WebService (4)
- aspectJ (1)
- 算法 (2)
- mysql (1)
- project (2)
- 正则表达式 (2)
- firefox (1)
最新评论
-
直觉:
gua 顶
com.opensymphony.xwork2.inject.DependencyException -
fordfelix:
加了以后 任然存在这个异常 求解!!
struts2 json 插件 @JSON(serialize = false) -
fangyan_oracle:
谢谢了, 很受用
用IE修改当前页面内容的代码zzzz -
cfying:
[flash=200,200][/flash][url][/u ...
精解window.setTimeout()使用方式与参数传递问题!(转) -
qinglangee:
tiewazi 写道param必须是全局变量(即window对 ...
精解window.setTimeout()使用方式与参数传递问题!(转)
随便写写, 有兴趣就看, 与.net无多大关系.
这几天无聊, 看到了"adsl密码终结者"这个软件, 嗯, 对它的功能不甚满意, 想针对我这里的写一个, 当时考虑用C#, 不过呢, 我对网络传输这块不熟, 还是用比较熟的东西, javascript + xmlhttp, 当时在写的时候, 可能请求的所有网页都是utf-8编码的, 代码一直运行良好, 可是在扫描到某个地址的时候, 总是出现异常, 我搞出来一看, 原来那网页的编码是gb2312的, 以前也曾遇到过类似的问题, 不过, 那时候的解决办法同得用ado.record对像吧, 现在浏览器创建这对象却失败, 只能另外想办法, googl有一通以后, 找到这几个函数,
这两个函数呢, 我花了点时间, 才看懂, 这两个也是网上较为常见的, 但我后来考虑到, 如果我要发送gb2312编码数据怎么办? 于是, 疯狂的搜索, 功夫不负有心人, 被我找到两个函数, 他奶奶的却是vbscript版的, 并且作者也是没有办法, 才用vbscript写的, 呵呵, 这个么, 没办法, 我非常不喜欢vbscript的语法, 决定还是改写成javascript的, 但在几个位置, 不得不承认, vbscript稍微强一点.
这个算是部份原创吧, 相信这两个函数的javascript版本, 不是太多, 反正我是没找到, 也许就我这一家. 嗯, 如果想知道这些函数怎么工作的, 请去了解gb2312是怎么编码, 还有utf-8是怎么对unicode字符进行编码.
以上函数, 在xpsp2 + ie7.0下通过.
原贴地址: http://www.leadbbs.com/a/a.asp?B=205&ID=2668820
这几天无聊, 看到了"adsl密码终结者"这个软件, 嗯, 对它的功能不甚满意, 想针对我这里的写一个, 当时考虑用C#, 不过呢, 我对网络传输这块不熟, 还是用比较熟的东西, javascript + xmlhttp, 当时在写的时候, 可能请求的所有网页都是utf-8编码的, 代码一直运行良好, 可是在扫描到某个地址的时候, 总是出现异常, 我搞出来一看, 原来那网页的编码是gb2312的, 以前也曾遇到过类似的问题, 不过, 那时候的解决办法同得用ado.record对像吧, 现在浏览器创建这对象却失败, 只能另外想办法, googl有一通以后, 找到这几个函数,
//将收到的gb2312编码转换成对应的文字 function gb2utf8(data) { var glbEncode = []; gb2utf8_data = data; execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript"); var t = escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2"); t = t.split("@"); var i = 0, j = t.length, k; while( ++i < j ) { k = t[i].substring(0,4); if(!glbEncode[k]) { gb2utf8_char = eval("0x"+k); execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript"); glbEncode[k] = escape(gb2utf8_char).substring(1,6); } t[i] = glbEncode[k]+t[i].substring(4); } gb2utf8_data = gb2utf8_char = null; return unescape(t.join("%")); } //对文字进行utf-8编码 function utf8(wide) { var c, s; var enc = ""; var i = 0; while(i<wide.length) { c= wide.charCodeAt(i++); // handle UTF-16 surrogates if (c>=0xDC00 && c<0xE000) continue; if (c>=0xD800 && c<0xDC00) { if (i>=wide.length) continue; s= wide.charCodeAt(i++); if (s<0xDC00 || c>=0xDE00) continue; c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000; } // output value if (c<0x80) enc += String.fromCharCode(c); else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F)); else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F)); else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F)); } return enc; } var hexchars = "0123456789ABCDEF"; function toHex(n) { return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF); } var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"; function encodeURIComponentNew(s) { var s = utf8(s); var c; var enc = ""; for(var i= 0; i < s.length; i++) { if(okURIchars.indexOf(s.charAt(i))==-1) enc += "%"+toHex(s.charCodeAt(i)); else enc += s.charAt(i); } return enc; }
这两个函数呢, 我花了点时间, 才看懂, 这两个也是网上较为常见的, 但我后来考虑到, 如果我要发送gb2312编码数据怎么办? 于是, 疯狂的搜索, 功夫不负有心人, 被我找到两个函数, 他奶奶的却是vbscript版的, 并且作者也是没有办法, 才用vbscript写的, 呵呵, 这个么, 没办法, 我非常不喜欢vbscript的语法, 决定还是改写成javascript的, 但在几个位置, 不得不承认, vbscript稍微强一点.
//转化成十六进制, 调用的是vbscript的Hex函数 function Hex(n) { c = n; execScript("c = Hex(c)", "vbscript"); return c; } //返回文字的AscaII编码, 调用的是vbscript的Asc函数 function Asc(s) { c = s; execScript("c = Asc(c)", "vbscript"); return c; } //获取文字的gb2312编码 function gb2312Encode(str) { var string = ""; c = s = ""; var high = ""; var low = ""; for(var i = 0; i < str.length; i++) { c = Asc(str.charAt(i)); if(Math.abs(c) < 0xFF) string += str.charAt(i); else { if(c < 0) c += 0x10000; high = ((c & 0xFF00) >> 8) & 0x00FF; low = c & 0xFF; string += "%" + Hex(high) + "%" + Hex(low); } } return string; } //将收到的gb2312编码进行解码 function gb2312Decode(data) { string = ""; str = ""; d = data; n = ""; c = ""; execScript("l = LenB(d)", "vbscript"); execScript("d = MidB(d, 1)", "vbscript"); for( i = 1; i <= l; i++) { execScript("c = AscB(MidB(d, i, 1))", "vbscript"); if( c < 0x80) { execScript("str = Chr(c)", "vbscript"); string += str; } else { execScript("n = AscB(MidB(d, i + 1, 1))", "vbscript"); execScript("str = Chr(CLng(c) * &H100 + CInt(n))", "vbscript"); string += str; i = i + 1; } } return string; }
这个算是部份原创吧, 相信这两个函数的javascript版本, 不是太多, 反正我是没找到, 也许就我这一家. 嗯, 如果想知道这些函数怎么工作的, 请去了解gb2312是怎么编码, 还有utf-8是怎么对unicode字符进行编码.
以上函数, 在xpsp2 + ie7.0下通过.
原贴地址: http://www.leadbbs.com/a/a.asp?B=205&ID=2668820
发表评论
-
有关浏览器的退格键问题(转)
2011-06-24 10:32 3801bbs : http://topic.csdn.net/u/2 ... -
实现jQuery的document.ready功能js代码
2010-09-12 09:15 2822<!DOCTYPE html PUBLIC &quo ... -
改变form 的action时不能用jquery的$("#formId")
2010-07-15 11:55 2974$("#formId").action=& ... -
谷歌的在线翻译API(转)
2010-03-23 16:34 1834谷歌的在线翻译API很好用哈哈 <!DOCTYPE ... -
12种不宜使用的Javascript语法(转载)
2010-01-22 22:13 1039... -
English 背单词
2010-01-12 16:05 1420李老师 跟我攒单词系列的500个单词 <!DOCT ... -
页面定时跳转
2009-11-26 09:51 1376<body> <div id=& ... -
Javascript获得屏幕长度宽度
2009-04-20 22:47 2026网页可见区域宽 document.body.clientWi ... -
document.body.contentEditable='true'
2008-02-21 11:49 6951javascript:document.body.conten ... -
js简单实现div圆角
2008-02-02 15:28 2344原文 http://www.w3pop.com/comm/vi ... -
[JS]slice()方法的使用
2008-02-01 08:45 4623var a; a = new Array("a&q ... -
Ajax::prototype 源码解读 之 prototype.js [转]
2008-01-31 16:23 2051Ajax::prototype 源码解读 之 protot ... -
js鼠标事件大全
2008-01-30 13:59 1835一般事件 事件 浏览器支持 描述 onClick IE ... -
JS操作select相关方法:新增 修改 删除 选中 清空 判断存在 等(转)
2008-01-28 11:32 13531.判断select选项中 是否存在Value="p ... -
js读取文本文件-xmlHTTP
2008-01-16 14:59 3392<html> <head> ... -
xmlhttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)(转)
2008-01-16 13:28 2805用xmlhttp post form时的表单乱码有两方面的原因 ... -
动态添加删除行
2007-12-28 15:04 1236//添加行 function addRow(tableNam ... -
如何用js来判断浏览器类型(ie,firefox)等等(zzz)
2007-12-24 17:06 3043现在网络上的浏览器,操作系统就象中国的方言一样,那个叫多啊!这 ... -
js 兼容(转)
2007-12-24 15:44 14901,document.getElementById替代docu ... -
点击表头排序的几种方法(转)
2007-12-24 15:32 1190我记得老早老早大家就开始在经典讨论表格排序的问题了,过了这么多 ...
相关推荐
JS实现URL编码转换中文
易语言JS实现编码转换源码。@资源源码站。
易语言JS实现编码转换源码,JS实现编码转换,decodeURI,encodeURI
主要介绍了Quoted-printable 编码介绍、Quoted-printable编码解码转换方法,需要的朋友可以参考下
简介 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个...当然,你也可以将图片、文本和音视频转换成二进制序列,再然后转换为Base64编码。我们这里讨论的是如何将二进制转换
通过运行该函数,能对提交的文本进行安全转换,防止html字符导致页面格局出错和攻击。
iconv-lite - 纯javascript转换字符编码
JS实现编码转换.rar
易语言源码易语言JS实现编码转换源码.rar
网站模板编码转换小助手是一款小巧的编码转换工具,快来... 软件功能 本软件可以将网站模板编码批量由UTF8转换成GBK模式或者有GBK模式批量转换为UTF8模式,目前支持.htm、.html、.php、.js、.css等常用格式编码转换。
unicode 转换工具 js unicode 转换工具 unicode 转换工具 js unicode 转换工具
各类编码转换,从unicode 到 Shift-JIS
易语言JS实现编码转换源码.7z
包含GBK和UTF16字符集的对照表,用于将GBK字节流和UTF字符串之间的互相转换。
此工具的功能如下,目前仅能在windows平台...1、支持UTF8、Unicode、GB2312编码普通文本文件任意转换 2、支持UTF8、Unicode、GB2312编码html文件任意转换 3、支持对文件进行Base64编码 4、支持对Base64编码文件进行解码
如:我要转换E盘下 E:\work_architecture\doc目录下的所有js 和 css 文件 编码为 utf-8 那么,你要执行的命令就是 java -jar code_conversion.jar "E:\work_architecture\doc" "utf-8" ".js .css" 还是挺简单的吧~~...
js 原生只支持utf-8,扩展 js转换成GB2312,js 原生只支持utf-8,扩展 js转换成GB2312,js 原生只支持utf-8,扩展 js转换成GB2312,
php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换。
文件编码转换/Screnc加解密/简繁转换 1.0 作者:Lael QQ:63778683 E-mail:xian_001@hotmail.com 使用注意: 1、使用前请备份,使用本软件造成的损失自负; 2、进行编码转换前请确认所有文件的源编码一致并选择...