找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18937|回复: 4

[问题求助] VBS获得 110_10 样 GB2312字符

[复制链接]
发表于 2013-3-14 21:33:08 | 显示全部楼层 |阅读模式
本帖最后由 wankoilz 于 2013-3-16 01:53 编辑

今天写了一个vbs,作用是获得以 110 和 10 开头的 GB2312 字符。
就是说这些字符都可以造成和“联通”一样的迷惑windows记事本的作用,你懂的。
  1. Option Explicit
  2. Dim arrH(31),arrL(63)
  3. Dim i,j,str,ado,bin,fso
  4. For i=0 To 31
  5.     arrH(i)=chrb(i+192)
  6. Next
  7. For i=0 To 63
  8.     arrL(i)=chrb(i+128)
  9. Next
  10. For i=0 To 31
  11.     For j= 0 To 63
  12.         str=str&arrH(i)&arrL(j)
  13.     Next
  14. Next
  15. '用fso来保存必须使用unicode格式,这样会被加上小端序BOM(FFEF)
  16. 'Set fso=CreateObject("scripting.filesystemobject")
  17. 'fso.CreateTextFile("c.doc",2,true).Write(str)
  18. Set bin=CreateObject("adodb.stream")
  19. Set ado=CreateObject("adodb.stream")
  20. ado.Mode=3
  21. ado.Type=2
  22. ado.Open
  23. ado.WriteText(str)
  24. bin.Mode=3
  25. bin.Type=1
  26. bin.Open
  27. ado.Position=2    '用二进制流保存,方便去掉头部的BOM
  28. ado.CopyTo bin:ado.Close
  29. bin.SaveToFile "chr.doc",2
  30. bin.Close
复制代码
运行后会得到一个doc文档(都安装word了吧),打开时选择 按照GB2312编码打开,这样就会得到一堆汉字。
新建一个txt,打开,复制任何一个汉字进去,关闭记事本,再打开,结果:字符变了...这和“联通”的原理一样。

至于用fso来保存字符时为什么必须指定unicode格式【CreateTextFile("c.doc",2,true)】,我想大概是因为str对应的unicode字符中有些是ansi中没有的吧,没有细查。
发表于 2013-3-15 06:45:31 | 显示全部楼层
i好,我想了解一下你说的110  10  FFEF 开头的文件格式

请问能给点相关资料的链接吗?
 楼主| 发表于 2013-3-15 07:10:47 | 显示全部楼层
百度搜"unicode utf-8"
发表于 2013-3-15 17:05:47 | 显示全部楼层
 楼主| 发表于 2013-3-16 01:00:39 | 显示全部楼层
本帖最后由 wankoilz 于 2013-3-16 01:03 编辑

啊,之前看过Demon的一些文章,但确实没看过这一篇。
你的代码直接把那些110_10特点的gb码对应的unicode码直接显示出来,更直观科学一点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 13:10 , Processed in 0.018267 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表