UTF-8 não reconhecido no processo em lote SQL por meio de Putty

0

Eu tenho um arquivo .sql com alguns comandos SQL "Insert into" simples que estão sendo inseridos em uma tabela chamada Künstler.

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

No entanto, ao executar o arquivo através do Putty para executar todos esses comandos, cada linha é recebida com um erro;

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

Parece que os caracteres do trema alemão estão sendo transformados em '▒'

Eu ativei o UTF-8 no Putty e os comandos funcionarão se inseridos manualmente, mas não como um lote. Existe algum trabalho por aí?

Para informações adicionais, o idioma que estou usando é o DB2.

Pejman Poh
fonte
É uma péssima idéia chamar a coluna "Künstler". Eu consideraria simples renomear o colomn.
duDE 14/01
@duDE Sim, eu faria o mesmo, mas infelizmente não tenho escolha: /
Pejman Poh

Respostas:

0

A execução de um script no PuTTY não é afetada por nenhuma das configurações do PuTTY. Isso dependeria apenas da codificação (conjunto de caracteres) do script e das configurações de localidade (assim como da codificação do banco de dados - e da maneira como ele lê os scripts).

Quando você digita no teclado usando o PuTTY, isso depende das configurações do PuTTY para o teclado.

Em vez de procurar uma correção no PuTTY, você poderá definir a página de código do aplicativo (mencionada na referência do DB2 ) para UTF-8 (página 1208 de acordo com a Noções básicas sobre conversão de caracteres do DB2 Universal Database ). De acordo com Derivação dos valores da página de códigos , isso deve ocorrer automaticamente se o seu código do idioma estiver definido corretamente.

Thomas Dickey
fonte
0

A solução acabou sendo bastante simples. Eu estava escrevendo o script no bloco de notas ++ e havia definido o arquivo com a codificação incorreta. A troca da codificação do ANSI padrão para UTF-8 resolveu o problema.

Isso pode ser feito através de Codificação -> Codificação em UTF-8 sem BOM.

Pejman Poh
fonte