2011-02-08 72 views
0

我有一个Access表,其中包含一些需要导出为UTF-16编码的CSV文件的中文字符。如果这是不可能的,我也可以尝试将表格导出为XLS或CSV文件,然后将编码转换为UTF-16。将Microsoft Access表导出为UTF-16 CSV

我有一种感觉,没有使用Access和/或Excel和/或VBA这样做的简单方法,但如果有,我很乐意听到它!如果不是,使用Java的解决方案将会有所帮助。

如果我知道文件已经编码了什么,我相信这会很有帮助。当我将文件导出到Microsoft Excel 2000时,中文字符显示正确,但是它们在Microsoft Access中无法正确显示。他们最初输入到Microsoft Excel中。我认为这意味着他们使用的是Unicode富文本格式,但我不确定。

非常感谢!

回答

0

我使用ADO流做这种事情。我必须为TON的网站做到这一点,我正在帮助他们进行SEO自动化。

http://www.nonhostile.com/howto-convert-byte-array-utf8-string-vb6.asp

'接受一个字节数组含有UTF-8数据 ',并将其转换成字符串 公共功能ConvertStringToUtf8Bytes(为ByRef strText中作为字符串)作为字节()

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 

端功能