重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
哈哈!一周前我刚刚遇到类似问题 慷慨把代码给你吧!!顺便贴上所有格式转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 #freeNum
Get #freeNum, , fBytes(0)
Get #freeNum, , fBytes(1)
Close #freeNum
If fBytes(0) = HFF And fBytes(1) = HFE Then GetEncoding = Unicode
If fBytes(0) = HFE And fBytes(1) = HFF Then GetEncoding = UnicodeBigEndian
If fBytes(0) = HEF And fBytes(1) = HBB Then GetEncoding = UTF8
Err:
End Function
Public Sub FileToUTF8(FileName As String)
Dim fBytes() As Byte, uniString As String, freeNum As Integer
Dim ADO_Stream As Object
freeNum = FreeFile
ReDim fBytes(FileLen(FileName))
Open FileName For Binary Access Read As #freeNum
Get #freeNum, , fBytes
Close #freeNum
uniString = StrConv(fBytes, vbUnicode)
Set ADO_Stream = CreateObject("ADODB.Stream")
With ADO_Stream
.Type = 2
.Mode = 3
.Charset = "utf-8"
.open
.WriteText uniString
.SaveToFile FileName, 2
.Close
End With
Set ADO_Stream = Nothing
End Sub
*.* 所有类型所有文件
| 回车上面 】的右边 、这个键按住shift
一个|的左右两边为一组 左边代表要显示给用户看的提示文本 右边代表具体要过滤的文件类型
Filter 属性设置当前文件名筛选字符串,该字符串确定出现在对话框的“文件类型”框中的选项。
openFileDialog1.InitialDirectory = "c:\\" ;
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.FilterIndex = 1 ; // 获取或设置文件对话框中当前选定筛选器的索引;
openFileDialog1.RestoreDirectory = true ;
对于每个筛选选项,筛选器字符串都包含筛选器说明,后接一垂直线条 (|) 和筛选器模式。不同筛选选项的字符串由垂直线条隔开。