|
楼主 |
发表于 2012-5-15 14:57
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 liucqa 于 2012-11-10 10:56 编辑
awnuwfkd 发表于 2012-5-15 14:50
请问怎么知道一个文件的编码方式呢?
还有adodb.stream可以直接连接读取一个文件里的数据吗?(刚刚学了ado ...
利用ADODB.Stream判断文件编码2008-03-14 15:49ANSI无格式定义
EFBB BF UTF-8
FFFE UTF-16/UCS-2, little endian
FEFF UTF-16/UCS-2, big endian
FFFE 0000 UTF-32/UCS-4, little endian
0000 FEFF UTF-32/UCS-4, big endian
- 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
- checkcode="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
复制代码
UTF8文件有BOM和No BOM两种,其区别在于BOM多了三个字节(EFBBBF),对比了二进制文件,发现有这个区别,如果是NoBOM的文件就无法通过前两个字节判断是否为UTF-8文件。
对于没有BOM的UTF-8文件,可以通过遍历判断是否为UTF-8编码。遍历方法可以是二进制的移位判断或者是正则。
|
评分
-
1
查看全部评分
-
|