找回密码
 加入
搜索
查看: 3714|回复: 5

FileRead读取UTF-8编码中文字符为什么会显示为乱码?

  [复制链接]
发表于 2009-12-12 21:57:03 | 显示全部楼层 |阅读模式
本帖最后由 passkalilo 于 2009-12-12 22:08 编辑

用FileRead函数读取文本文件, 有时候读取出来的中文是乱码,经反复测试得知 FileRead函数只有在读取UTF-8编码的文本时有时会出错, 而有时又是正确的,不知是何原因, 论坛有个贴子问过这个问题,但是无果而终, 希望有人能给解答一下

按如下操作,读出来的肯定是乱码
1. 新建一个文本文档->另存为-> 编码方式选utf-8
2. 执行下面语句
 InetGet('http://www.baidu.com",'html.txt',1)
    $html = FileRead('html.txt')
    msgbox(0,'',$html)
显示结果为什么会是乱码?
 楼主| 发表于 2009-12-15 18:41:42 | 显示全部楼层
要沉下去了
发表于 2010-6-28 11:08:44 | 显示全部楼层
这个问题得解决,因此要狠狠的顶
发表于 2010-6-28 11:22:17 | 显示全部楼层
帮助里这样写:
#include <IE.au3> 
_IECreate ( [$s_Url = "about:blank" [, $f_tryAttach = 0 [, $f_visible = 1 [, $f_wait = 1 [, $f_takeFocus = -1]]]]] )
所以:
#include <ie.au3>
$oHTTP = _IECreate("http://www.baidu.com/", 0, 0, 1, 0)
$HTMLSource = _IEDocReadHTML($oHTTP)
MsgBox(0, "test:", $HTMLSource)
发表于 2010-6-28 11:27:53 | 显示全部楼层
搜索了一下,给你参考
使用BinaryToString转换一下
转换一个二进制变量为ANSI字符串.
BinaryToString ( 表达式[,标志])
标志 = 1 (默认), binary 数据为 ANSI 编码
标志 = 2, binary 数据为 UTF16 小编码
标志 = 3, binary 数据为 UTF16 大编码
标志 = 4, binary 数据为 UTF8 编码

论坛另一种说法是使用microsoft.xmlhttp获取网页源码后就可以了
希望对你有帮助。
发表于 2010-6-29 08:32:01 | 显示全部楼层
InetGet('http://www.baidu.com",'html.txt',1)
    $html = FileRead('html.txt')
    msgbox(0,'',$html)
上面是你的代码,我没有测试,只发现一个问题就是在编辑器中,'html.txt'不正常,还是符号的问题:
InetGet("http://www.baidu.com",'html.txt',1)
    $html = FileRead('html.txt')
    msgbox(0,'',$html)
就是"http://www.baidu.com" ,这个前后标点符号有错误,前单后双,肯定不对! 其它未测试
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 04:16 , Processed in 0.089161 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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