2011-02-08 73 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 

端功能