1

我有一个带有存储变音符号的 varchar2 字段的 Oracle 数据库。我还有一个通过 ODBC 连接到数据库的 PHP 应用程序。整个事情在Linux上运行。

变音符号的问题是现在它们被转换为普通字母,例如 ä => a,但仅在 PHP-Application 和 isql 程序中。如果我使用 sqlplus 或 Oracle Web GUI,一切正常,这告诉我问题出在 odbc 连接上。

我只是不知道如何配置 ODBC,所以它使用正确的编码......

编辑 连接是通过

odbc_connect(DSN, User, PW)

我知道 DSN 对应于 /root/.odbc.ini 或 /etc/odbc.ini 中的配置。我不完全确定,因为我没有设置系统并且我没有经验完全是 ODBC。目前 DSN 为“NAPA”,/etc/odbc.ini 文件具有以下设置:

[NAPA]
Driver = Oracle 11g ODBC driver
DSN = OracleODBC-11g
ServerName = localhost
UserID = *****
Password = ****
NLS_LANG = AMERICAN.WE8MSWIN1252
Charset = utf8

数据库参数是

SQL> SELECT * FROM NLS_DATABASE_PARAMETERS;
+-------------------------------+-----------------------------------------+
| PARAMETER                     | VALUE                                   |
+-------------------------------+-----------------------------------------+
| NLS_LANGUAGE                  | AMERICAN                                |
| NLS_TERRITORY                 | AMERICA                                 |
| NLS_CURRENCY                  | $                                       |
| NLS_ISO_CURRENCY              | AMERICA                                 |
| NLS_NUMERIC_CHARACTERS        | .,                                      |
| NLS_CHARACTERSET              | WE8MSWIN1252                            |
| NLS_CALENDAR                  | GREGORIAN                               |
| NLS_DATE_FORMAT               | DD-MON-RR                               |
| NLS_DATE_LANGUAGE             | AMERICAN                                |
| NLS_SORT                      | BINARY                                  |
| NLS_TIME_FORMAT               | HH.MI.SSXFF AM                          |
| NLS_TIMESTAMP_FORMAT          | DD-MON-RR HH.MI.SSXFF AM                |
| NLS_TIME_TZ_FORMAT            | HH.MI.SSXFF AM TZR                      |
| NLS_TIMESTAMP_TZ_FORMAT       | DD-MON-RR HH.MI.SSXFF AM TZR            |
| NLS_DUAL_CURRENCY             | $                                       |
| NLS_COMP                      | BINARY                                  |
| NLS_LENGTH_SEMANTICS          | BYTE                                    |
| NLS_NCHAR_CONV_EXCP           | FALSE                                   |
| NLS_NCHAR_CHARACTERSET        | AL16UTF16                               |
| NLS_RDBMS_VERSION             | 10.2.0.1.0                              |
+-------------------------------+-----------------------------------------+
4

0 回答 0