本帖最后由 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 | | | | | | | | 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 | | ado.CopyTo bin:ado.Close | | bin.SaveToFile "chr.doc",2 | | bin.CloseCOPY |
运行后会得到一个doc文档(都安装word了吧),打开时选择 按照GB2312编码打开,这样就会得到一堆汉字。
新建一个txt,打开,复制任何一个汉字进去,关闭记事本,再打开,结果:字符变了...这和“联通”的原理一样。
至于用fso来保存字符时为什么必须指定unicode格式【CreateTextFile("c.doc",2,true)】,我想大概是因为str对应的unicode字符中有些是ansi中没有的吧,没有细查。 |