程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 用asp實現檢測文件編碼

用asp實現檢測文件編碼

編輯:關於ASP編程
最近,在搞這個東西,網上也找不到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流就能按照需要的編碼打開,就不會亂碼了
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved