标题: [问题求助] VBS获得 110_10 样 GB2312字符 [打印本页]
作者: wankoilz 时间: 2013-3-14 21:33 标题: VBS获得 110_10 样 GB2312字符
本帖最后由 wankoilz 于 2013-3-16 01:53 编辑
今天写了一个vbs,作用是获得以 110 和 10 开头的 GB2312 字符。
就是说这些字符都可以造成和“联通”一样的迷惑windows记事本的作用,你懂的。- Option Explicit
- Dim arrH(31),arrL(63)
- Dim i,j,str,ado,bin,fso
- For i=0 To 31
- arrH(i)=chrb(i+192)
- Next
- For i=0 To 63
- arrL(i)=chrb(i+128)
- Next
- For i=0 To 31
- For j= 0 To 63
- str=str&arrH(i)&arrL(j)
- Next
- Next
- '用fso来保存必须使用unicode格式,这样会被加上小端序BOM(FFEF)
- 'Set fso=CreateObject("scripting.filesystemobject")
- 'fso.CreateTextFile("c.doc",2,true).Write(str)
- Set bin=CreateObject("adodb.stream")
- Set ado=CreateObject("adodb.stream")
- ado.Mode=3
- ado.Type=2
- ado.Open
- ado.WriteText(str)
- bin.Mode=3
- bin.Type=1
- bin.Open
- ado.Position=2 '用二进制流保存,方便去掉头部的BOM
- ado.CopyTo bin:ado.Close
- bin.SaveToFile "chr.doc",2
- bin.Close
复制代码
运行后会得到一个doc文档(都安装word了吧),打开时选择 按照GB2312编码打开,这样就会得到一堆汉字。
新建一个txt,打开,复制任何一个汉字进去,关闭记事本,再打开,结果:字符变了...这和“联通”的原理一样。
至于用fso来保存字符时为什么必须指定unicode格式【CreateTextFile("c.doc",2,true)】,我想大概是因为str对应的unicode字符中有些是ansi中没有的吧,没有细查。
作者: czjt1234 时间: 2013-3-15 06:45
i好,我想了解一下你说的110 10 FFEF 开头的文件格式
请问能给点相关资料的链接吗?
作者: wankoilz 时间: 2013-3-15 07:10
百度搜"unicode utf-8"
作者: Demon 时间: 2013-3-15 17:05
http://demon.tw/programming/utf-8-like-gbk.html
作者: wankoilz 时间: 2013-3-16 01:00
本帖最后由 wankoilz 于 2013-3-16 01:03 编辑
啊,之前看过Demon的一些文章,但确实没看过这一篇。
你的代码直接把那些110_10特点的gb码对应的unicode码直接显示出来,更直观科学一点。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |