Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
dicas:caracteres [2008/10/24 19:14] – criada paulojusdicas:caracteres [2010/04/12 10:46] (atual) paulojus
Linha 1: Linha 1:
-=== Codificação de caracteres === +====== Codificação de caracteres ======
-Em português brasileiro os sistemas operacionais utilizam tipocamente uma das seguintes codificações de caracteres: ''ISO-8859-1'' ou ''UTF-8''. O Windows e alguns Linux, especialmente os mais antigos utilizam ''ISO-8859-1'' enquanto os Linux mais recentes por defaut costumam instalar a ''UTF-8''. Estas diferentes codificações podem ter efeitos sobre documentos com caracteres especiais escritos em um sistema e visualizados em outro. +
  
-Para converter um arquivo de um formato para outro na linha de comando do Linux pode-se usar o comando ''iconv''. Vejamos alguns exemplos. +Em português brasileiro os sistemas operacionais utilizam diferentes codificações de caracteres: 
-  * Voce tem um arquivo ''exemplo1.tex'' digitado em um sistema ''ISO-8859-1'' e quer converter para ''UTF-8'' gerando o arquivo com nome ''exemplo1a.tex'' (vamos preservar o original por segurança, se vc quiser depois renomeie o arquivo) +  * **''UTF-8''**: No LINUX pode-se escolher a codificação desejada (na instalação ou posteriormentemas em versões mais atuais geralmente utiliza-se como padrão na instalação
-<code> +  * **''ISO-8859-1''**: O WINDOWS usa um formato próprio ''WINDOWS-1252'' mas que é quase igual a ISO-8859-1 (também chamado de **''latin1''**). 
-$ iconv -f ISO-8859-1 -t UTF-8 -o exemplo1a.tex exemplo1.tex </code> +
-  * Voce tem um arquivo ''exemplo2.tex'' digitado em um sistema ''UTF-8'' e quer converter para ''ISO-8859-1'' gerando o arquivo com nome ''exemplo2a.tex'' (vamos preservar o original por segurança, se vc quiser depois renomeie o arquivo) +
-<code> +
-$ iconv -f UTF-8 -t ISO-8859-1 -o exemplo2a.tex exemplo2.tex </code>+
  
-Para saber qual a codificação de caracteres está sendo usada no sistema Linux que voce está usando digite:+Estas diferentes codificações podem ter efeitos sobre documentos com caracteres especiais escritos em um sistema e visualizados e ou compilados(por exemplo documentos LaTeX) em outro sistema.  
 + 
 +**No LINUX**, para saber qual a codificação de caracteres está sendo usada no sistema digite na linha de comando do terminal:
 <code> <code>
-locale </code>+locale </code>
     - Se voce ver na saída ''pt.BR'' é porque o sistema é ''ISO-8859-1''     - Se voce ver na saída ''pt.BR'' é porque o sistema é ''ISO-8859-1''
     - Se voce ver na saída ''pt.BR.UTF-8'' é porque o sistema é  ''UTF-8''     - Se voce ver na saída ''pt.BR.UTF-8'' é porque o sistema é  ''UTF-8''
  
 +Alguns programas e aplicativos, em especial editores de texto (por exemplo o ''kile'') possuem opções para se escolhar a codificação de caracteres a ser utilizada.
 +
 +
 +==== Conversão de arquivos via comando em terminal (LINUX) ====
 +Para converter um arquivo de um formato para outro na linha de comando do Linux pode-se usar os comandos ''iconv'' ou ''recode'' na linha de comando do terminal.
 +
 +== Usando o comando convmv ==
 +O comando ''convmv'' é muito flexível tanto para converter arquivos individuais quanto diretórios, subdiretórios e arquivos, recursivamente, de uma só vez. 
 +  * Veja se o comando está disponível no seu sistema. Se não etiver instale com<code>
 +sudo apt-get install convmv
 +</code>
 +  * para testar a conversão de um arquivo, por exemplo, ''exemplo.tex'' pode-se usar <code>
 +convmv -f UTF-8 -t ISO-8859-1 exemplo.tex
 +</code>
 +  * e para converter definitivamente  um arquivo, por exemplo, ''exemplo.tex'' pode-se usar <code>
 +convmv -f UTF-8 -t ISO-8859-1 --notest exemplo.tex
 +</code>
 +  * Para converter definitivamente  um diretório recursivamente (isto é todos os subdiretórios e arquivos) usase a opção ''-r'': <code>
 +convmv -r -f UTF-8 -t ISO-8859-1 --notest DIRETORIO
 +</code>
 +  * Mais detalhes na documentação <code>
 +man convmv
 +</code>
 +
 +== Usando o comando iconv ==
 +  * Voce tem um arquivo ''exemplo1.tex'' digitado em um sistema ''ISO-8859-1'' e quer converter para ''UTF-8'' gerando o arquivo com nome ''exemplo1a.tex'' (vamos preservar o original por segurança, se vc quiser depois renomeie o arquivo)<code>
 +iconv -f ISO-8859-1 -t UTF-8 -o exemplo1a.tex exemplo1.tex </code>
 +  * Voce tem um arquivo ''exemplo2.tex'' digitado em um sistema ''UTF-8'' e quer converter para ''ISO-8859-1'' gerando o arquivo com nome ''exemplo2a.tex'' (vamos preservar o original por segurança, se vc quiser depois renomeie o arquivo)<code>
 +iconv -f UTF-8 -t ISO-8859-1 -o exemplo2a.tex exemplo2.tex </code>
 +
 +
 +== Usando o comando recode ==
 +
 +  * De latin1 (iso-8859-1) para utf-8:<code>
 +recode l1..utf8 arquivo.csv</code>
 +
 +  * De utf-8 para latin1 (iso-8859-1):<code>
 +recode utf8..l1 arquivo.csv
 +</code>
 +
 +== Usando o recurso dos2unix ==
 +
 +O **''dos2unix''** pode ser usado [[http://www.dos2unix.org/|neste site que perite a conversão online]]
 +
 +
 +=== Definição de codificação no R ===
 +
 +O R por "default" lê e usa a codificação de caracteres ("enconding") do seu sistema. Entretanto para ler e importar arquivos pode ser útil e necessário definir a desejada. O caminho para definir a codificação em uma sessão do R é com o comando <R>options(encoding="O QUE VOCE QUER AQUI")</R> e para importar arquivos diversas funções aceitam o argumento ''enconding''. Para mais detalhes veja e sessão "Encodings" em <R>help("connections")</R> 
 +
 +=== Definição de codificação (locale) no LATEX ===
 **Uso no ** <latex>\LaTeX</latex>: o preâmbulo de seu documento deve ter:  **Uso no ** <latex>\LaTeX</latex>: o preâmbulo de seu documento deve ter: 
      - para ''ISO-8859-1'':<code>      - para ''ISO-8859-1'':<code>
Linha 21: Linha 68:
 </code> </code>
      - para ''UTF-8'':<code>      - para ''UTF-8'':<code>
-\usepackage[utf-8]{inputenc}+\usepackage[utf8]{inputenc}
 </code> </code>
 +
 +
 +=== Definição de codificação (locale) em uma sessão do R e/ou Sweave ===
 +
 +No R há pelos menos duas formas de lidar com isto:
 +  - É possível fazer a conversão usando a função ''iconv()''.
 +  - Definir a opção padrão para uma sassão com ''options()'': Os comandos do R a seguir podem definir o //enconding// desejado em uma sessão. Isto é particularmente útil gerando documentos via Sweave. 
 +
 +<code R>
 +options(encoding="UTF-8"
 +</code>
 +
 +<code R>
 +options(encoding="latin1")
 +</code>
 +
 +Note que isto vai gerar o documento em um computador com certa codificação e que pode ser incompatível 
 +para compilação em outra máquina que usar um outro //enconding//
 +Neste caso é necessário usar o ''iconv'' descrito anteriormente para 
 +converter de um formato para outro antes de compilar o documento LaTeX.
 +
 +===== Conversão de todo o sistema =====
 +
 +Na instalação do sistema operacional (LINUX) é instalada uma codificação cd caracteres ''default''. Em alguns casos o procedimento de instalação pergunta sobre a codificação desejada (ou permite que seja definida). Porém muitas vezes a codificação padrão é instalada e o usuário deseja mudar depois da instalação. Em versões recentes do Linux tais como Debian, Ubuntu, Mint entre outras a codificação ''UTF-8'' é a padrão da instalação.
 +
 +A seguir vamos ilustrar a configuração e conversão de sistema ''UTF-8'' para ''ISO-8859-1'' com opções para portugues (BR) e inglês.
 +  - **Gerar os locales desejados:**
 +     - editar o arquivo ''/var/lib/locales/supported.d/local'' deixando com o seguinte conteúdo:<code>
 +pt_BR.UTF-8 UTF-8
 +en_US.UTF-8 UTF-8
 +en_GB.UTF-8 UTF-8
 +pt_BR IS0-8859-1
 +en_US IS0-8859-1
 +en_GB IS0-8859-1</code>
 +    - gerar os locales com o comando:<code>
 +sudo dpkg-reconfigure locales</code>
 +  - **Definição do locale do sistema** Cada um dos locales gerados podem ser escolhidos para o sistema. Para definir o locale desejado edite o Arquivo de configuração para definição dos locales ''/etc/environment'' ou ''/etc/default/locale''. Em um exemplo optando por portugues brasileiro com codificação ISO-8859-1 o conteúdo de um destes arquivos deve ter as seguintes linhas:<code>
 +LANG="pt_BR"
 +LANGUAGE="pt_BR:pt"</code>
 +  - Depois disto, para converter nomes e conteúdos de arquivos e diretórios já existentes use o comando ''convmv'' descrito acima.
 +
 +
  
  
  

QR Code
QR Code dicas:caracteres (generated for current page)