文本文件自动判断编码读写文件

文本文件编码处理

一、判断:
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 #freeNum
Get #freeNum, , fBytes(0)
Get #freeNum, , fBytes(1)
Close #freeNum
If fBytes(0) = &HFF And fBytes(1) = &HFE Then GetEncoding = Unicode: Exit Function
If fBytes(0) = &HFE And fBytes(1) = &HFF Then GetEncoding = UnicodeBigEndian: Exit Function
If fBytes(0) = &HEF And fBytes(1) = &HBB Then GetEncoding = UTF8: Exit Function
GetEncoding = GBK
Err:
End Function


二、
'=========================================================================
'按编码读取txt文件内容
Public Function ReadPfile(ByVal FileName As String, ByVal FileCode As String) As String
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
'
With objStream
.Type = 2
.Mode = 3
.open
.Charset = FileCode '不同编码时自己换,Chinese (Simplified) (GB2312),中文 GBK ,繁体中文 Big5 ,日文 EUC-JP ,韩文 EUC-KR,charset=UTF-8(国际化编码),ANSI,Unicode,unicode big endian
.LoadFromFile FileName
ReadPfile = .ReadText
.Close
End With
Set objStream = Nothing
End Function



三、
'===========================================================================================
'保存文件为unicode格式文本
Public Function SavePfile(ByVal FileName As String, ByVal FileCode As String, ByVal TextString As String) As String
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
'
With objStream
.Type = 2
.Mode = 3
.Charset = FileCode '不同编码时自己换,Chinese (Simplified) (GB2312),中文 GBK ,繁体中文 Big5 ,日文 EUC-JP ,韩文 EUC-KR,charset=UTF-8(国际化编码),ANSI,Unicode,unicode big endian
.open
.WriteText TextString
.SaveToFile FileName, 2
.Close
End With
Set objStream = Nothing
End Function
'========================================================================================

相关文档
最新文档