用asp实现检测文件编码

2018-09-06 11:28

阅读:441

  最近,在搞这个东西,网上也找不到asp相关的,如果有人很早弄出来了,也不要笑话偶;费了好久,总算搞定;

原理:用stream对象预读文件的头两个字节,分析判断出utf-8,unicode,ANSI(简体中文操作系统,即gb2312)编码

相关资料:


ANSI:无格式定义;
Unicode:前两个字节为FFFE;
Unicodebigendian:前两字节为FEFF;
UTF-8:前两字节为EFBB;

复制代码 代码如下:functioncheckcode(path)
setobjstream=server.createobject(adodb.stream)
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfilepath
bintou=objstream.read(2)
IfAscB(MidB(bintou,1,1))=&HEFAndAscB(MidB(bintou,2,1))=&HBBThen
checkcoder=utf-8
ElseIfAscB(MidB(bintou,1,1))=&HFFAndAscB(MidB(bintou,2,1))=&HFEThen
checkcode=unicode
Else
checkcode=gb2312
EndIf
objstream.close
setobjstream=nothing
endfunction
补充:

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


评论


亲,登录后才可以留言!