通过 Putty 进行的 SQL 批处理无法识别 UTF-8

通过 Putty 进行的 SQL 批处理无法识别 UTF-8

我有一个.sql文件,其中有几个简单的“插入”SQL命令,这些命令被插入到一个名为Künstler的表中。

insert into Künstler (name) values ('Mariah Carey');
insert into Künstler (name) values ('Michael Jackson');

但是,通过 Putty 执行文件运行所有这些命令时,每一行都会出现错误;

During SQL processing it returned:
SQL0007N The following on "insert into K" mark "▒" is invalid.

德语变音符号似乎被转换成“▒”

我在 Putty 上启用了 UTF-8,如果手动输入命令,命令可以工作,但不能作为批处理。有什么解决方法吗?

有关更多信息,我使用的语言是 DB2。

答案1

运行脚本PuTTY 中的 不受 PuTTY 任何设置的影响。它只取决于脚本的编码(字符集)和您的语言环境设置(以及数据库的编码 - 以及它读取脚本的方式)。

当你类型在键盘上使用 PuTTY,这取决于 PuTTY 的键盘设置。

您不必在 PuTTY 中寻找修复方法,而是可以设置应用程序代码页(在DB2 参考)转换为 UTF-8(根据第 1208 页了解 DB2 通用数据库字符转换)。 根据代码页值的派生, 那应该如果您的语言环境设置正确,则会自动发生。

答案2

解决方案其实相当简单。我在 notepad++ 中编写脚本,并将文件设置为错误的编码。将编码从默认的 ANSI 切换到 UTF-8 解决了这个问题。

这可以通过编码 -> 使用无 BOM 的 UTF-8 编码来完成。

相关内容