【问题标题】:Export MS Access Memo field and convert Unicode导出 MS Access 备忘录字段并转换 Unicode
【发布时间】:2009-04-07 21:04:00
【问题描述】:

我有一个 Access 2003 数据库。一个表有一个备注字段,我在获取该数据时遇到了问题。

  • 将该字段导出到 txt 或 csv 会删除该字段(255 个字符)
  • 导出为 Excel 时会出现奇怪的换行符
  • 通过 myODBC 附加到 mysql 数据库会出现关于“不正确的字符串”的错误
  • 将 VBA 与 Scripting.FileSystemObject 一起使用将不起作用,除非您告诉它将文件创建为 Unicode,这没关系,但是我无法将文件转换为可以导入的文件

我的一些数据中有 Unicode 字符。它不是一个多语言数据库,所以我唯一能找到的是斜引号,可能是从 Word 中复制过来的。丢弃它们很好;字段中的信息仍然可以理解。

我可以将这些 Unicode 字符转换为它们的(ANSI?ASCII?)等价物吗?我没有太多地处理编码。

我尝试过使用 iconv,但对编码一无所知,它并没有真正帮助。

现在,我需要以下方面的帮助: - 转换我数据库中的字符,以便它们导出非 unicode-ish-ly - 或者,在文件导出后转换 unicode 字符。

【问题讨论】:

  • 你要导入什么不支持Unicode的东西?
  • 我使用 ruby​​ 将其加载到 mysql。我正在导出到 YAML 并使用 Ruby on Rails 夹具加载器。由于文件开头有一个奇怪的字符,问题在于将文件读入 YAML。也许这是 YAML 库的问题。我不知道。
  • 你是如何导出的?已定义出口规范?在 Access 2003 中,这为您提供了一个包含所有常用编码(代码页)的下拉列表,包括 Unicode UTF8。这也是您将备注字段定义为长度大于 255 个字符的方式。
  • 我可能应该把它作为一个答案——添加它作为一个答案。

标签: ms-access unicode encoding memo


【解决方案1】:

Access/VBA 创建的文件是 UTF-16。出于某种原因,文件开头有一个字符导致 Ruby YAML 库解析错误。

iconv 来救援!

iconv -f UTF-16 -t ASCII -c utf_file.yml > ascii_file.yml

【讨论】:

    【解决方案2】:

    你是如何出口的?已定义出口规范?在 Access 2003 中,这为您提供了一个包含所有常用编码(代码页)的下拉列表,包括 Unicode UTF8。这也是您将备注字段定义为长度大于 255 个字符的方式。

    【讨论】:

    • 我正在使用 FileSystemObject 和 writeln() 将单独的行写入文本文件。如果我使用的是 TransferText,那么出口规范肯定是要走的路。
    • 你在哪里运行你的代码?使用访问权限?如果是这样,我建议您最好使用 TransferText,因为它可以解决您遇到的问题。
    【解决方案3】:

    导出为 .xml

    【讨论】:

    • ... 仍然使用古怪的前导 Unicode 字符导出。
    • 你能在评论中发布这个角色吗?
    • 至少包含超过 255 个字符的我无法获得半分?
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多