当前位置: 移动技术网 > IT编程>开发语言>.net > 详细讲解ASP检测文件编码的实现方法

详细讲解ASP检测文件编码的实现方法

2019年01月18日  | 移动技术网IT编程  | 我要评论
最近,在搞这个东西,网上也找不到相关的,如果有人很早弄出来了,也不要笑话偶;费了好久,总算搞定; 原理:用stream对象预读文件的头两

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

原理:用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流就能按照需要的编码打开,就不会乱码了


如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网