在 MariaDB Engine Connect 中从 WE8MSWIN1252 转换为 UTF-8

Convert from WE8MSWIN1252 to UTF-8 in MariaDB Engine Connect

我正在使用 WE8MSWIN1252 编码从使用 MariaDB 连接引擎以 UTF-8 格式显示内容的网络服务器连接到 Oracle 数据库。

用于连接表的代码是这样的:

CREATE TABLE mytable ENGINE=CONNECT TABLE_TYPE=ODBC TABNAME='oracle_table_name' CONNECTION='DSN=orcl;UID=someuser;PWD=passwd';

我知道我必须在某处传递预期的字符集,但不确定使用此引擎的语法。

我可以使用以下代码正确显示直接从 php 连接的字符:

oci_connect('someuser', 'passwd', 'host', 'AL32UTF8');

odbc.ini 文件如下所示:

[orcl]
Driver = Oracle 12c ODBC driver
Servername = host

我试过将 Charset = UTF-8 放入此文件,但没有成功。

经过多次尝试和大量调查,我了解到这是环境设置的问题。

我终于解决了写下一行 /etc/init.d/mysql:

NLS_LANG=SPANISH_COLOMBIA.WE8MSWIN1252 ; export NLS_LANG

要从 isql 连接,/root/.bash_profile 中需要下一行:

NLS_LANG=SPANISH_COLOMBIA.AL32UTF8 ; export NLS_LANG

我是在 CentOS 6 上,所以我想在其他环境中这无法工作。