У меня есть файл .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.

Похоже, символы немецкого умлаута превращаются в ▒

Я включил UTF-8 в Putty, и команды будут работать, если они введены вручную, но не как пакет. Есть ли работа вокруг?

Для дополнительной информации я использую DB2.

2 ответа2

0

Решение оказалось довольно простым. Я писал скрипт в notepad++ и установил неверную кодировку файла. Переключение кодировки с ANSI по умолчанию на UTF-8 решило проблему.

Это можно сделать через Encoding -> Encode в UTF-8 без спецификации.

0

Запуск скрипта в PuTTY не зависит от настроек PuTTY. Это будет зависеть только от кодировки (набора символов) скрипта и ваших настроек локали (а также от кодировки базы данных - и способа, которым она читает скрипты).

Когда вы печатаете на клавиатуре с помощью PuTTY, это зависит от настроек PuTTY для клавиатуры.

Вместо того, чтобы искать исправление в PuTTY, вы можете установить для кодовой страницы своего приложения (упомянутой в справочнике по DB2) значение UTF-8 (стр. 1208 в соответствии с описанием преобразования символов универсальной базы данных DB2). Согласно выводу значений кодовой страницы, это должно происходить автоматически, если ваш языковой стандарт установлен правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .