我有一个使用设置为 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.