Locales – UTF-8 para ISO.8859-1

Estou montando um servidor Samba para a empresa em que trabalho e hoje eu tive um problema com acentuações de arquivos.

Problema:
A empresa usa servidor Windows 2003 Server como servidor de arquivos e AD, um departamento da empresa está mudando para um novo local, onde teremos uma nova estrutura de rede e como é um projeto temporário não há necessidade de comprar uma nova licença da Microsoft para um novo servidor de arquivos.
Para resolver o problema eu estou montando um novo servidor usando Ubuntu 9.10 Server.
A instalação e configuração do Ubuntu e Samba foi super tranquila e rápida.
O problema foi na hora de subir os arquivos do Server Windows para o Server Linux.

No Windows todos os arquivos tinham os seus acentos, mas no Linux, tudo truncado e quando era criado um arquivo no Linux com acento, no Windows ele era truncado.

Procurei no grande Oráculo e achei algumas soluções, mas sem sucesso.

Resolvi mete a cara e procurar sobre Locales + Samba + Linux + Windows até que achei a solução.

Solução:

Obs: todos os comandos foram executado com root!

Edite o arquivo /etc/environment e acrescente as seguintes linhas.

LC_ALL=pt_BR.ISO-8859-1
LANG="pt_BR"
LANGUAGE="pt_BR:pt_en"

Agora o arquivo /etc/default/locale .

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

Agora o arquivo /etc/locale.alias acrescente está linha no final do arquivo.

pt_BR       pt_BR.ISO-8859-1 pt_BR

Vá para o diretório /var/lib/locales/supported.d e apague os arquivos “pt” e “en” (as vezes so tem o pt) deixando so o local. Edite o arquivo local /var/lib/locales/supported.d/local e deixe igual o exemplo.

pt_BR.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1

Pronto agora é so reconfigurar os Locales, digite os seguintes comandos.
# localedef pt_BR -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO-8859-1 -i pt_BR -f ISO-8859-1
# dpkg-reconfigure locales
# locale-gen --purge
# locale-gen

Para finalizar reinicie o servidor e logo que o sistema subir faça o teste.

# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE=”pt_BR”
LC_NUMERIC=”pt_BR”
LC_TIME=”pt_BR”
LC_COLLATE=”pt_BR”
LC_MONETARY=”pt_BR”
LC_MESSAGES=”pt_BR”
LC_PAPER=”pt_BR”
LC_NAME=”pt_BR”
LC_ADDRESS=”pt_BR”
LC_TELEPHONE=”pt_BR”
LC_MEASUREMENT=”pt_BR”
LC_IDENTIFICATION=”pt_BR”
LC_ALL= pt_BR.ISO-8859-1

# locale -a

C
en_US.iso88591
POSIX
pt_BR.iso88591

Pronto seu sistema já está com ISO-8859-1

Até mais

Jost Dayan

About Jost Dayan

Jost Dayan, Analista de Suporte e consultor autônomo na área de infra-estrutura de servidores, sou fundador, criado e administrador do Fórum GuiaCNC e ShopCNC.(alguns tentam me tirar isso). Alguns dizem que sou louco de jogar pedra e rasgar dinheiro :-) - Nerd, Geek, Anti-Social (segundo minha esposa e alguns amigos) tenho apenas 3 amigos :-). Mais informações sobre a minha pessoa, pode acessar aqui -> http://www.jostdayan.com.br/sobre/