【问题标题】:How to convert MS Access database encoding to UTF-8?如何将 MS Access 数据库编码转换为 UTF-8?
【发布时间】:2011-03-07 17:08:28
【问题描述】:

我目前正在开发一个传统的 Classic ASP + MS-Access 应用程序。我最近将所有 .asp 文件从 ISO-8859 (Windows) 编码转换为 UTF-8。

我现在遇到的问题是存储在数据库中的文本(带有重音字符的法语)在网页中呈现时显示不正确,因为编码不一致。如何将我的 MS Access 数据库编码从 ISO-8859 转换为 UTF-8?

【问题讨论】:

  • iDevlop: 不太好用……

标签: ms-access asp-classic character-encoding


【解决方案1】:

如何将我的 MS Access 数据库编码从 ISO-8859 转换为 UTF-8?

你不知道。 Access 可以处理 Unicode 文本,但它不会将其存储为 UTF-8。有一些方法可以将 UTF-8 编码的文本直接插入 Access Text 字段,但这会导致奇怪的行为,如我的其他答案 here 所示。

对于 ASP 应用程序,只需使用编码为 UTF-8 的 .asp 页面,告诉 IIS 产生 UTF-8 输出(通过<%@ CODEPAGE = 65001 %> 指令),然后让 IIS 和 Access OLEDB 驱动程序处理“Access Unicode”和 UTF-8。

有关 Access、Classic ASP 和 UTF-8 的详细示例,请在此处查看我的答案:

Capture and insert Unicode text (Cyrillic) into MS access database

重要提示

请注意,您不应将 Access 数据库用作 Web 应用程序的后端数据存储; Microsoft强烈建议不要这样做(参考:here)。

【讨论】:

    【解决方案2】:

    您也许可以编写一个使用 StrConv 函数将文本转换为 Unicode 的 Access UPDATE 语句。

    http://www.techonthenet.com/access/functions/string/strconv.php

    【讨论】:

      【解决方案3】:

      我最终使用 Server.HTMLEncode 来处理来自我的数据库的文本。它完全破坏了我存储在那里的所有 HTML 代码,所以我必须编写一个丑陋的 hack 以避免将 html 标记转换为 html 安全字符串。它现在可以工作了,但它肯定不是最优雅的解决方案......

      【讨论】:

        【解决方案4】:

        您可以在 Access 2000 中执行此操作。
        右键单击要转换的表。
        选择“导出”
        在“保存类型”下拉列表中选择“文本文件 (.txt;.csv;.tab;.asc)”,输入导出的名称文件并按“保存”
        选择分隔并按“高级”
        在“语言”列表中选择“全部”,在“代码页”列表中选择“Unicode (UTF-8)”
        在此处更改所需的任何其他设置
        按“确定”,按“下一步”并选择您的分隔符。选中在第一行中包含字段名称的选项
        按“下一步”,确认新文件的目标文件夹,然后单击“完成”

        下一阶段是重新导入保存的文件:
        选择文件、获取外部数据、导入
        在“文件类型”下拉列表中选择“文本文件 (.txt;.csv;.tab;.asc)”
        导航到保存的文本文件并按导入
        指定分隔符并按“下一步”
        指定分隔符并按“下一步”
        按“高级”按钮,再次在“语言”列表中选择“全部”,然后在“代码页”中选择“Unicode (UTF-8)”
        选择单选按钮以保存在新表中,然后按“下一步”
        选择“无主键”的单选按钮(否则,Access 将插入一个 ID 字段作为表中的第一个字段,您可能不希望这样做) 点击“下一步”,勾选导入的表名,点击“完成”

        注意:

        1. 您必须编辑新表以为其指定字段名称,但如果您导出它们,这些名称应该在第一条记录中。

        2. Access 会将数字类型自动分配给导入的布尔类型和日期类型,因此您可能需要更改这些

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-30
          • 2011-06-26
          • 2014-02-02
          • 1970-01-01
          • 2017-07-25
          • 2012-01-15
          • 2011-03-28
          • 2012-06-12
          相关资源
          最近更新 更多