Videos selecionados

Loading...

19 de outubro de 2009

iconv

Quem mexe com servidor acaba encontrando uma selva de ambientes, configurações, padrões e outros detalhes que acabam não sendo tão insignificantes assim.

Um exemplo disso é codificação. Grosso modo, no Brasil se usa basicamente utf-8 e iso-8859-1. Nem vou discorrer sobre o que é cada um e quais suas distinções porque isso por si só dá um artigo bem interessante.

A codificação pode ser usada sob o ambiente ou sob a aplicação. Na minha dificuldade, especificamente, estou usando postgres e recebi um script em iso-8859-1, mas minha base está em utf-8. Só esclarecendo: minha aplicação não pode ser "reconfigurada" para aceitar iso-8859-1 se o ambiente não o for também. É uma solução? sim, mas escolhemos outro caminho; algo menos "intrusivo".

O aplicativo iconv pode ler uma entrada codificada e convertê-la em outra.

$iconv base_dados.sql -f iso-8859-1 -t utf-8 -0 base_dados_utf8.sql
Onde:
base_dados.sql é meu script original
-f é from (de qual codificação)
-t é to (para qual codificação)
-0 é output (para qual saída. No caso, um arquivo)

Obs: no postgres, iso-8859-1 também é conhecido por Latin1