![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 03:26 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]VBS调用IE进UTF8论坛,中文编码无法登陆 |
| 可打印版本 769 / 10 |
| 第1楼 9zhmke | 发表于 2009-07-08 12:37 |
| 中级用户 发帖 99 积分 355 | |
|
[已解决]VBS调用IE进UTF8论坛,中文编码无法登陆 自己做了个登论坛小号的程序如下(用户和密码正确):
Set regwsh=createobject("wscript.shell") Dim Wsh,cookies Set Wsh = WScript.CreateObject("WScript.Shell") cookies=regwsh.regread ("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Cookies") regwsh.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Cookies","C:\\Documents and Settings\\All Users\\Cookies\\我是马甲" Wsh.Run "IEXPLORE.EXE http://bbs.dp168.com/logging.php?action=login&loginsubmit=true&cookietime=0&username=鎴戞槸椹敳&password=15239776",,False wscript.sleep 3000 regwsh.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Cookies",cookies Set Wsh=NoThing WScript.quit 本程序利用IE或其它浏览器启动时只检查一次cookies的原理来实现多个IE窗口同时登录多个用户功能。其中下面这句的乱码是被转换过后的用户名“我是马甲”: Wsh.Run "IEXPLORE.EXE http://bbs.dp168.com/logging.php?action=login&loginsubmit=true&cookietime=0&username=鎴戞槸椹敳&password=15239776",,False 使用了批处理生成vbs只能生成ansi编码。而这次的论坛要求使用utf8编码(一些论坛是),所以当户名是中文时老是出错,英文用户名时不会出错。怎样能把ANSI编码的转成utf8呢?vbs只能使用ANSI代码,一用UTF8就出错,临时解决方案是用一个ANSI文本、一个UTF8文本,在调用IE的字符串里使用转换过后的UTF8的字符串,但这样做任然有很多中文出现问号,使过程无法完成,比如用户名为“一个会员”时,转成UTF8是“涓€涓細鍛?”,这个问号的出现使用户无法登陆,有没有好办法呢? [ Last edited by 9zhmke on 2009-7-8 at 15:16 ] |
|
| 第2楼 slore | 发表于 2009-07-08 13:11 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
UTF就直接用UTF编码传就行了 |
|
| 第3楼 9zhmke | 发表于 2009-07-08 13:19 |
| 中级用户 发帖 99 积分 355 | |
|
这是两个不相干的问题,如果不改注册表里的cookies,是不可以同时登两个以上的号的,不信你在本论坛试就知道了。
...你句子里这个后面的%??是怎么来的呢? [ Last edited by 9zhmke on 2009-7-8 at 13:21 ] |
|
| 第4楼 slore | 发表于 2009-07-08 13:43 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你没有看我的标题么?
|
|
| 第5楼 9zhmke | 发表于 2009-07-08 13:45 |
| 中级用户 发帖 99 积分 355 | |
|
看了,vbs的文件如果用utf文件根本就不能执行。不知道怎么才能在里面弄成utf8。如果可以转换成三字节格式的%数据就好了。
[ Last edited by 9zhmke on 2009-7-8 at 14:10 ] |
|
| 第6楼 slore | 发表于 2009-07-08 14:11 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
记事本用过没?
简单方法用专用播放器。。。 要用系统的方法就新建记事本,写 我是马甲 然后另存为 utf8编码名字叫1.txt 没用16进制查看器怎么看呢? 新建一个文本文档写000000000000000 UTF8编码1个汉字转3个字节,你打3(记事本UTF编码头)+12个0 然后保存为2.txt 然后打开CMD 运行: fc /b 1.txt 2.txt 会得到2列信息,一列是1的编码,一列30(0的编码) 所以。。。。 还是推荐找个专门工具转吧。。。 其实貌似。。。 很多网页你提交都可以看到。。。比如吧,类似google 你查找下"我是马甲"看下IE的URL就知道了 |
|
| 第7楼 slore | 发表于 2009-07-08 14:42 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
专用播放器。。。 专用编码转换器。。。
|
|
| 第8楼 9zhmke | 发表于 2009-07-08 14:46 |
| 中级用户 发帖 99 积分 355 | |
Originally posted by slore at 2009-7-8 02:42 PM: 不会全手工操作吧? 我的目的是根据一个用户名密码清单来生成这么几百个vbs。如果一个直接在地址栏用javascript:alert(encodeURI('我是马甲' )就可以查出来,多了还不清楚怎么弄。继续查资料中....[ Last edited by 9zhmke on 2009-7-8 at 14:59 ] |
|
| 第9楼 slore | 发表于 2009-07-08 15:07 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
那就自己写呗 MsgBox UTF8Encode("我是马甲")
Public Function UTF8Encode(szString) Dim szChar Dim szTemp Dim szCode Dim szHex Dim szBin Dim iCount1 Dim iCount2 Dim iStrLen1 Dim iStrLen2 Dim lResult Dim lAscVal szString = Trim(szString) iStrLen1 = Len(szString) For iCount1 = 1 To iStrLen1 szChar = Mid(szString, iCount1, 1) lAscVal = AscW(szChar) If lAscVal >= &H0 And lAscVal <= &HFF Then If (lAscVal >= &H30 And lAscVal <= &H39) or _ (lAscVal >= &H41 And lAscVal <= &H5A) or _ (lAscVal >= &H61 And lAscVal <= &H7A) Then szCode = szCode & szChar Else szCode = szCode & "%" & Hex(AscW(szChar)) End If Else szHex = Hex(AscW(szChar)) iStrLen2 = Len(szHex) For iCount2 = 1 To iStrLen2 szChar = Mid(szHex, iCount2, 1) szBin = szBin & Mid("0000;0001;0010;0011;0100;0101;0110;0111;1000;1001;1010;1011;1100;1101;1110;1111;", CLng("&H" & szChar) * 5 + 1, 4) Next szTemp = "1110" & Left(szBin, 4) & "10" & Mid(szBin, 5, 6) & "10" & Right(szBin, 6) For iCount2 = 1 To 24 If Mid(szTemp, iCount2, 1) = "1" Then lResult = lResult + 1 * 2 ^ (24 - iCount2) Else: lResult = lResult + 0 * 2 ^ (24 - iCount2) End If Next szTemp = Hex(lResult) szCode = szCode & "%" & Left(szTemp, 2) & "%" & Mid(szTemp, 3, 2) & "%" & Right(szTemp, 2) End If szBin = vbNullString lResult = 0 Next UTF8Encode = szCode End Function |
|
| 第10楼 9zhmke | 发表于 2009-07-08 15:14 |
| 中级用户 发帖 99 积分 355 | |
|
刚试了可以了,太谢谢了,就是要这个效果呢
|
|
| 第11楼 9zhmke | 发表于 2009-07-08 16:13 |
| 中级用户 发帖 99 积分 355 | |
|
把生成程序一起发上来,给大家省去调试的麻烦:
其中涉及到的LUNTAN2.TXT是马甲存放文件,格式为用户名+空格+密码,空格为任意个但是用户名和密码中不能有空格 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |