【问题标题】:Exporting a Microsoft Access table to UTF-16 CSV将 Microsoft Access 表导出为 UTF-16 CSV
【发布时间】:2011-06-23 14:52:21
【问题描述】:

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

我感觉没有使用 Access 和/或 Excel 和/或 VBA 的简单方法,但如果有的话,我很想听听!如果没有,使用 Java 的解决方案会很有帮助。

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

非常感谢!

【问题讨论】:

    标签: excel ms-access unicode encoding utf-16


    【解决方案1】:

    我使用 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
    

    结束函数

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多