VB 如何判断txt文件的编码格式

来源:百度知道 编辑:UC知道 时间:2024/06/23 19:51:52
VB 怎么获取一个txt文件的编码格式,用什么函数方法
读取文本文件小弟也会,小弟现在的程序是如果txt的编码格式为utf-8就转换为ANSI格式,如果是ANSI格式就不用转换,所以要有个判断编码格式的语句。

哈哈!一周前我刚刚遇到类似问题 慷慨把代码给你吧!!顺便贴上所有格式转UTF8的代码
(我本来是给XML读取用的 MSXML太挑剔了 只读UTF-8格式- - 不过转UTF-8的还是有点问题 记事本打开看上去读取没有问题 但是用MSXML读取依然有点问题。)
原理:根据文件前两个字符判断

注意 放在一个模块里面。
使用:GetEncoding(文件路径),返回一个Encoding枚举体(仿.net)

例如:
Dim ReturnEncoding As Encoding
ReturnEncoding = GetEncoding("C:\1.txt")

If ReturnEncoding = UTF8 Then
'UTF处理
ElseIf ReturnEncoding = Unicode Then
'Unicode
Elseif ReturnEncoding = UnicodeBigEndian Then
'Unicode-BE处理
Else
'ANSI处理
End If

========模块Encoding.bas==========
Option Explicit

Public Enum Encoding
ANSI
Unicode
UnicodeBigEndian
UTF8
End Enum

Public Function GetEncoding(FileName As String) As Encoding
On Error GoTo Err

Dim fBytes(1) As Byte, freeNum As Integer
freeNum = FreeFile

Open FileName For Binary Access Read As