ASp로 파일 인코딩 검사

1252 단어
최근에 이 물건을 만들면 인터넷에서도 ASp와 관련된 것을 찾을 수 없기 때문에 만약 누군가가 일찍 꺼냈다면 인형을 비웃지 마라.오랫동안 걸려서 겨우 해결되었다.
원리:stream 대상의 예독 파일의 첫 두 바이트를 이용하여utf-8,unicode,ANSI(간체 중국어 운영체제,즉gb2312) 인코딩을 분석 판단한다.
관련 자료:
ANSI: 형식 정의가 없습니다.
유니코드: 처음 두 바이트는 FFE입니다.
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 흐름은 필요한 인코딩에 따라 열 수 있고 인코딩이 어지럽지 않습니다

좋은 웹페이지 즐겨찾기