【问题标题】:Using UTF8 in oracle tables linked to MS Access在链接到 MS Access 的 oracle 表中使用 UTF8
【发布时间】:2011-12-16 12:41:27
【问题描述】:

UTF8 字符未显示在 Oracle 数据库上的链接表中。 (它们甚至导致访问无法锁定记录)

我尝试在连接字符串中添加"charset=utf8",但到目前为止还没有成功。

我想我会在程序运行时尝试这个查询:

SET NAMES utf8

但是如何通过与链接表相同的连接在远程 Oracle 服务器上运行它?

【问题讨论】:

    标签: oracle ms-access utf-8 odbc


    【解决方案1】:

    我自己没有在 Windows 上使用 Oracle ODBC,但我确实在许多 UNIX 操作系统上使用了各种 Oracle ODBC 驱动程序。您没有说您使用的是哪个 ODBC 驱动程序,但您确定它具有连接属性 charset=utf8?适用于 Linux 的 Oracle ODBC 驱动程序似乎没有此属性。此外,我还没有听说过 Oracle 的“set names utf8”;那不是mysql的东西吗?

    在 UNIX 中,要从 Oracle 取回 UTF-8 数据,您可以将 NLS_LANG 环境变量设置为类似 AMERICAN_AMERICA.AL32UTF8 的值,这会告诉 Oracle 客户端库您需要数据的方式。

    顺便说一句,ODBC 对 UTF-8 的处理并不好(这里的解释太长了)。 Windows 上的 ODBC 驱动程序使用所谓的宽 API SQLxxxW,它接受并返回大小为 2 个字节且通常采用 UCS-2 编码的 SQLWCHAR。 Windows 上的 Unicode 兼容驱动程序应提供 SQLxxxW 范围的 API,而 UTF-8 不包含在内。

    但是,正如我所说,我不在 Windows 上使用 Oracle,但上面的一些内容可能会对您有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多