エンコーディングを UTF-8 に設定して作成された DB2 があります。
db2 create database mydb using codeset UTF-8
データ挿入スクリプトも UTF-8 エンコードで保存されています。現在の問題は、Windows のインストールでは UTF-8 が使用されていないため、コマンド ライン プロセッサが別のエンコーディングで動作しているように見えることです。
C:\Users\Administrator>chcp
Active code page: 850
これにより、データ (特殊文字を含む) がデータベースに正しく保存されないという問題が発生します。
Linux/AIX では、設定することでコマンド ライン エンコーディングを変更できました。
export LC_ALL=en_US.UTF-8
Windowsでこれを達成するにはどうすればよいですか? 私はすでに試しました
chcp 65001
更新:しかし、それは何の効果もありませんか?ジャンクを出力するため、db2clp は UTF-8 でエンコードされたファイルを処理できないようです。
D:\Program Files\ibm_db2\SQLLIB\BIN>chcp 65001
Active code page: 65001
D:\Program Files\ibm_db2\SQLLIB\BIN>type d:\tmp\encoding.sql
INSERT INTO MY_TABLE (ID, TXT) VALUES (99, 'äöü');
D:\Program Files\ibm_db2\SQLLIB\BIN>db2 connect to mydb
Datenbankverbindungsinformationen
Datenbank-Server = DB2/NT64 9.5.0
SQL-Berechtigungs-ID = MYUSER
Aliasname der lokalen Datenbank = MYDB
D:\Program Files\ibm_db2\SQLLIB\BIN>db2 -tvf d:\tmp\encoding.sql
INSERT INTO MY_TABLE (ID, TXT) VALUES (99, 'äöü')
DB20000I Der Befehl SQL wurde erfolgreich ausgeführt.