如何将Unicode字符保存到文本文件

Cod*_*e K 2 unicode ms-word character-encoding word-vba-mac

这是在Word for MAC VBA中.我想将Unicode字符从文本框保存到文本文件.例如,这个字符"⅛".

我用这个代码.

Dim N as Long
N = FreeFile
Dim strText as String
strText = Textbox1.Text 'This is what is in the textbox "?"
Open <file path> For Output As N 
     Print #N, strText
Close N
Run Code Online (Sandbox Code Playgroud)

它不保存Unicode字符.我知道我必须改变文本编码格式.我怎么做?

同样,如何使用Unicode格式读取文本文件?

The*_*acy 7

我希望这也适用于Mac上的VBA for Word,但在Windows上我有FileSystemObject的CreateTextFile方法(参见MSDN doc).在那里,我可以定义创建一个unicode文本文件.

  Set fsObject = CreateObject("Scripting.FileSystemObject")
  Set xmlFile = fsObject.CreateTextFile("path/filename.txt", True, True) 'the second "true" forces a unicode file.

  xmlFile.write "YourUnicodeTextHere"
  xmlFile.close
Run Code Online (Sandbox Code Playgroud)


Rom*_*hke 6

VBA 无法以这种方式以 UTF-8 编码文本。使用 ADODB - 是的,用于文本,而不是用于数据库。

'ensure reference is set to Microsoft ActiveX DataObjects library
'(the latest version of it) under "tools/references"
Sub AdoTest()
    Dim adoStream As ADODB.Stream
    
    Set adoStream = New ADODB.Stream
    
    'Unicode coding
    adoStream.Charset = "Unicode" 'or any string listed in registry HKEY_CLASSES_ROOT\MIME\Database\Charset
    
    'open sream
    adoStream.Open
    
    'write a text
    adoStream.WriteText "Text for testing: ?š?", StreamWriteEnum.stWriteLine
    
    'save to file
    adoStream.SaveToFile "D:\a\ado.txt"
    
    adoStream.Close
End Sub
Run Code Online (Sandbox Code Playgroud)

阅读更简单,请在此处查看我的答案:

Unicode 和 UTF-8 与 VBA

编辑:我已经插入了完整的例子。

编辑 2:添加了对注册表中编码列表的引用