15.1.3 文字コード変換について
- 〈この項の構成〉
(1) 文字コード変換処理
HADBが提供するODBCドライバは,MS-Unicodeインタフェースを含むODBC3.5をサポートします。
MS-UnicodeインタフェースであるSQLxxxW関数を使用した場合,ODBCドライバ内でMS-Unicodeの文字列データとHADBが対応している文字コードを変換する処理を行います。
次の図に,MS-Unicodeの文字列データとHADBが対応している文字コードを変換する処理を示します。
- [説明]
-
-
APからHADBサーバへの処理で文字コード変換する場合,SQLxxxW関数でMS-Unicodeの文字列データをHADBが対応している文字コードに変換したあと,HADBサーバに処理を引き渡します。
-
HADBサーバからAPへの処理で文字コード変換する場合,SQLxxxW関数でHADBが対応している文字コードをMS-Unicodeの文字列データに変換したあと,APに出力します。
-
HADBでは,次に示す文字コードをサポートしています。
-
Unicode(UTF-8)
-
Shift-JIS
(2) 留意事項
-
ダイアクリティカルマーク(区分符号)付き文字について
ウムラウト()やトレマ()などのダイアクリティカルマーク付き文字を,比較,変数に代入,または検索する場合,ダイアクリティカルマークなし文字として扱われることがあります。
これは,SQLxxxW関数を使用して文字コード変換がされたとき,ダイアクリティカルマークが失われるためです。
-
サロゲートペアなど,文字コード変換できない文字について
ODBC3.5インタフェースのSQLxxxW関数を使用した場合,文字コード変換が行われます。その際,サロゲートペアの文字など,文字コード変換できない文字は,比較,格納代入時にはエラーになります。また,検索時には#に置き換えられることがあります。さらに,#が出現した位置以降の文字については,文字化けが発生することがあります。