加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

运用asp实现检测文件编码

发布时间:2023-09-06 14:07:13 所属栏目:Asp教程 来源:
导读:最近,在搞这个东西,网上也找不到asp相关的,如果有人很早弄出来了,也不要笑话偶;费了好久,总算搞定;

原理:用stream对象预读文件的头两个字节,分析判断出utf-8,unicode,ANSI(简体中文操作系统,即gb2312
最近,在搞这个东西,网上也找不到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流就能按照需要的编码打开,就不会乱码了
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章