최근에 저는이 작업을 수행하고 있으며 온라인으로 ASP 관련 사항을 찾을 수 없습니다. 누군가가 그것을 일찍 만들면 농담하지 마십시오. 마침내 그것을 끝내는 데 오랜 시간이 걸렸습니다.
원리 : 스트림 객체를 사용하여 파일의 첫 두 바이트를 읽고 UTF-8, 유니 코드 및 ANSI의 인코딩을 분석하고 결정하십시오 (단순화 된 중국 운영 체제, 즉 GB2312).
관련 정보 :
ANSI : 형식화되지 않은 정의;
유니 코드 : 처음 두 바이트는 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"
또 다른
CheckCode = "GB2312"
endif
objstream.close
setobjstream = 아무것도
최종 기능 장애
다시 채우다:
Xie Xiaoyu는 이전 것이 단순히 말도 안된다는 것을 상기시켰다. ANSI의 로컬 인코딩은 각 국가 자체에 의해 정의되며 고정 파일 헤더 형식은 없습니다. 중국 본토에서는 GB2312를 읽을 수 있으며 다른 언어 시스템에서는 차가워 지므로이 부분을 자세히 구별 할 필요가 없습니다.
파일 인코딩을 가져 오면 필요한 인코딩으로 스트림 스트림을 열 수 있으며 차량이없는 코드가 없습니다.