VBA 文本框到 UTF-8 文本文件
VBA Textbox to UTF-8 Textfile
我得到了一个 VBA 脚本,用于将用户窗体文本框的输入保存到文本文件中。
问题是它以 ANSI 编码而不是 UTF-8 编码保存它。
有办法改变吗?
这是我的代码:
Private Sub CommandButton1_Click()
Call WriteFile("C:\Zuschauer.txt", TextBox1)
End Sub
Sub WriteFile(ByRef Path As String, ByRef Text As String)
Dim FileNr As Long
FileNr = FreeFile
Open Path For Output As #FileNr
Print #FileNr, Text;
Close #FileNr
End Sub
下面的代码使用 ADODB.Stream
,因此您需要在项目中添加对 Microsoft Active Data Objects 6.1 Library
的引用(6.1
以外的版本也可以)。
Sub WriteUnicodeUTF8File(ByVal FileSpec As String, ByVal data As String)
With New ADODB.Stream
.Type = adTypeText
.Charset = "UTF-8"
.Open
.WriteText data
.SaveToFile FileSpec, adSaveCreateOverWrite
.Close
End With
End Sub
根据您的具体情况,您可能需要选择不同的选项,例如 adSaveCreateOverWrite
。
我得到了一个 VBA 脚本,用于将用户窗体文本框的输入保存到文本文件中。 问题是它以 ANSI 编码而不是 UTF-8 编码保存它。
有办法改变吗?
这是我的代码:
Private Sub CommandButton1_Click()
Call WriteFile("C:\Zuschauer.txt", TextBox1)
End Sub
Sub WriteFile(ByRef Path As String, ByRef Text As String)
Dim FileNr As Long
FileNr = FreeFile
Open Path For Output As #FileNr
Print #FileNr, Text;
Close #FileNr
End Sub
下面的代码使用 ADODB.Stream
,因此您需要在项目中添加对 Microsoft Active Data Objects 6.1 Library
的引用(6.1
以外的版本也可以)。
Sub WriteUnicodeUTF8File(ByVal FileSpec As String, ByVal data As String)
With New ADODB.Stream
.Type = adTypeText
.Charset = "UTF-8"
.Open
.WriteText data
.SaveToFile FileSpec, adSaveCreateOverWrite
.Close
End With
End Sub
根据您的具体情况,您可能需要选择不同的选项,例如 adSaveCreateOverWrite
。