当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用asp实现检测文件编码

ASP
ASP技巧研究:ASP Error对象的相关知识
ASP模拟MVC模型的编程方式
学ASP应该注意ASP程序书写的规范
用文本+ASP打造新闻发布系统
ASP Session对象的集合以及属性方法事件
ASP防止盗链或防止下载的方法
ASP开发中存储过程应用详解
ASP脚本语言的19个基本技巧使用
ASP中使用Form和QueryString集合
在ASP中访问和更新Cookies集合
在ASP中操作HTTP报头方法分析
建立三层结构的ASP应用程序
ASP动态网页编程的19个基本技巧
ASP教程:制作登陆验证页面程序
asp正则表达式详细说明
使用ASP订制自己的XML文件读写方法
ASP中的Debug类--VBScript
Asp中如何设计跨越域的Cookie
DHTML+XML+ASP+CSS的树形目录
实例一则 ASP程序中输出Excel文件

ASP 中的 用asp实现检测文件编码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 150 ::
收藏到网摘: n/a

最近,在搞这个东西,网上也找不到asp相关的,如果有人很早弄出来了,也不要笑话偶;费了好久,总算搞定;
原理:用stream对象预读文件的头两个字节,分析判断出utf-8,unicode,ANSI(简体中文操作系统,即gb2312)编码
相关资料:

ANSI:        无格式定义;
Unicode:        前两个字节为FFFE;
Unicode big endian:  前两字节为FEFF; 
UTF-8:         前两字节为EFBB;
复制代码 代码如下:
function checkcode(path)
set objstream=server.createobject("adodb.stream")
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfile path
bintou=objstream.read(2)
If AscB(MidB(bintou,1,1))=&HEF And AscB(MidB(bintou,2,1))=&HBB Then
checkcoder="utf-8"
ElseIf AscB(MidB(bintou,1,1))=&HFF And AscB(MidB(bintou,2,1))=&HFE Then
checkcode="unicode"
Else
checkcode="gb2312"
End If
objstream.close
set objstream=nothing
end function

补充:
谢小雨提醒,先前的简直是胡扯;ANSI的本地编码,都是各国自己定义的,没有固定的文件头格式,在大陆中文操作系统下,是可读的gb2312,在其他语言的系统下,就是乱码,所以这部分没必要再详细区分
得到文件编码,stream流就能按照需要的编码打开,就不会乱码了