ウムラウトを格納する varchar2 フィールドを持つ Oracle DB があります。ODBC経由でDBに接続するPHPアプリケーションもあります。すべてが Linux 上で実行されます。
ウムラウトの問題は、ウムラウトが通常の文字 (例: ä => a) に変換されることですが、これは PHP アプリケーションと 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
DB パラメータは次のとおりです。
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 |
+-------------------------------+-----------------------------------------+