Экспорт таблицы Microsoft Access в UTF-16 CSV - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть таблица Access с некоторыми китайскими символами, которые мне нужно экспортировать в файл CSV с кодировкой UTF-16.Если это невозможно, я мог бы также попытаться экспортировать таблицу в файл XLS или CSV, а затем преобразовать кодировку в UTF-16.

У меня такое чувство, что не существует простого способа сделать это с помощью Access, и / или Excel, и / или VBA, но если так и есть, я бы хотел это услышать!Если нет, то было бы полезно использовать решение Java.

Я уверен, что было бы полезно, если бы я знал, в какой кодировке уже был файл. Китайские символы отображаются правильно при экспорте файла в Microsoft Excel2000, но они не отображаются правильно в Microsoft Access.Они были первоначально напечатаны в Microsoft Excel.Я думаю, это означает, что они написаны в формате Unicode, но я не уверен.

Большое спасибо!

1 Ответ

0 голосов
/ 02 апреля 2011

Я использую потоки ADO для подобных вещей.Я должен был сделать это для ТОННЫХ сайтов, где я помогал им с автоматизацией 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

End Function

...