segunda-feira, 19 de outubro de 2009

Conversao latin1 para utf-8

Uma dica rapida para outubro nao passar em branco.

como uso o postgres desde a versao 6.4
no inicio para aceitar os caracteres do brasil utilizava o latin1
como enconding.

hoje na versao 8.4 o suporte a utf-8 esta se tornando padrao, entao o
que fazer para migrar as bases antigas?

Resposta esta na utilizacao de conversores de codificaçao do arquivo de backup.

para linux faça o seguinte:

- Gere um backup normal com pg_dump:
pg_dump -i banco > backup.sql

- utilize recodificadores de caracteres, no meu caso escolhi o recode (http://www.gnu.org/software/recode/recode.html):
recode l1..utf8 backup.sql

- por final, edite o arquivo para retirar o SET client_encoding = 'LATIN1'; que o pg_dump gera:
vim backup.sql

- feito isso basta importa o backup para o novo banco ja criado com a codificaçao UTF-8
psql banco < backup.sql

Nenhum comentário:

Postar um comentário