
;win32汇编环境,网络编程入门之十八
;在这一教程里,学习一下,如何判断访问的网页是什么编码,以下示例只判断是 UFT-8 还是 GB2312编码,其它的编码方式可以此类推
;为什么需要这个东西?网页一般是html语言写的,或者php等,它们都要标示出我是什么编码写的
;因为你电脑前的键盘上的这些键,这些字母和符号,叫ASCII码,它们每个都占用一个字节。
;但是,世界上的语言很多,比如中文。中文的每个字用一个字节表示不够,但究竟用多少个字节,表达的方式就多了。有UTF-8编码,有GB2312编码等。
;所以,每个网页需要自已声明,自已是什么编码的。其它的电脑访问,知道了之后,才明白用什么方式解码出来。
;在前面的教程里,我们假设所访问的网页编码都是UFT-8,但这并非唯一的。如果遇到其它编码的网页,那获取的数据显示出来就是乱码。
;所以,我们需要提前分析出网页的编码
;这里,我们需要知道,网页的编码不是在HTTP报头里,而是在html语言头里
;这又涉及到html语言了,在这里,只能假设你懂得一些基本的html语言
;比如在html语言里有类似这样的内容 <head><meta charset="UTF-8"></head>
;里面的 UTF-8 就是说明这个网页是 UTF-8编码的。也有常见的 GB2312 编码,对于我们来说这是常用的,当然外面世界还有更多,一般用不上了,但也可以此类推
;幸运的是,html网页的头部部分都是用英语表述的,而英语字母又属于ASCII码的范围,所以不需要转化,可以直接按字节遍历找到 UTF-8 或 GB2312 这些单词。
;所以,我们第一次先下载html网页的前面一部分字节,比如 1024 字节。然后遍历寻找 UTF-8 或 GB2312 这些单词就可以判断出该网页是什么编码的
;知道了何种编码,我们才把中文标题,或中文内容进行转化,进而进行其它的动作。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
include kernel32.inc
include wininet.inc ;需要添加的wininet头文件
includelib user32.lib
includelib kernel32.lib
includelib wininet.lib ;需要添加的wininet库文件
; 自定义函数声明
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD ;对话框窗口函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAINDIALOG equ 1
ICO_MAIN equ 1000 ;图标
ID_BUTTON01 equ 41
ID_EDIT01 equ 11
ID_EDIT02 equ 12
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szMsg db "提示",0
szErr db "错误",0
szEnter db 13,10,0 &nbs

414

被折叠的 条评论
为什么被折叠?



