No processo de exportação de Shapefiles para SQL já podemos modificar a codificação do arquivo gerado para a mesma codificação do Banco, evitando a inserção de caracteres estranhos nas tabelas (�). Também é comum nos depararmos com o erro abaixo quando tentamos importar um arquivo .sql na codificação LATIN1 (ou ISO-8859-1) para um Banco de Dados em UTF-8:
ERRO: sequência de bytes é inválida para codificação "UTF8": 0xed7269
HINT: Este erro pode acontecer também se a sequência de bytes não corresponde a codificação esperado pelo servidor, que é controlada por "client_encoding".
HINT: Este erro pode acontecer também se a sequência de bytes não corresponde a codificação esperado pelo servidor, que é controlada por "client_encoding".
Para evitar este problema, use o comando shp2psql junto com o comando iconv, que é responsável por fazer esta modificação. A sintaxe é a seguinte:
shp2pgsql -s SRID shapefile nome_da_tabela | iconv -f codificacao_de_origem -t codificacao_de_destino > arquivo_sql.sql
Exemplo:
shp2pgsql -s 4291 municipios_ibge.shp municipios | iconv -f LATIN1 -t UTF-8 > municipios.sql
Em seguida, use psql -f municipios.sql -d seu_banco_utf8 para criar a tabela com seus registros.
Nenhum comentário:
Postar um comentário