我有一个带有一些中文字符的Access表,我需要将其导出为带有UTF-16编码的CSV文件。如果无法做到这一点,我也可以尝试将表导出为XLS或CSV文件,然后将编码转换为UTF-16。
我觉得使用Access和/或Excel和/或VBA没有简单的方法,但如果有,我很乐意听到它!如果没有,使用Java的解决方案会有所帮助。
我确定如果我知道文件的编码已经存在将会有所帮助。当我将文件导出到Microsoft Excel 2000时,中文字符会正确显示,但它们在Microsoft Access中无法正确显示。它们最初输入Microsoft Excel。我认为这意味着它们是Unicode丰富的文本,但我不确定。
非常感谢!
答案 0 :(得分:0)
我使用ADO流来做这种事情。我必须为TON的网站做这件事,我帮助他们进行SEO自动化。
http://www.nonhostile.com/howto-convert-byte-array-utf8-string-vb6.asp
'接受包含utf-8数据的字节数组 '并将其转换为字符串 公共函数ConvertStringToUtf8Bytes(ByRef strText As String)As Byte()
Dim objStream As ADODB.Stream
Dim data() As Byte
' init stream
Set objStream = New ADODB.Stream
objStream.Charset = "utf-16"
objStream.Mode = adModeReadWrite
objStream.Type = adTypeText
objStream.Open
' write bytes into stream
objStream.WriteText strText
objStream.Flush
' rewind stream and read text
objStream.Position = 0
objStream.Type = adTypeBinary
objStream.Read 3 ' skip first 3 bytes as this is the utf-8 marker
data = objStream.Read()
' close up and return
objStream.Close
ConvertStringToUtf8Bytes = data
结束功能