quinta-feira, 12 de fevereiro de 2015

2.3 - Que editor de texto?

No Linux, qualquer um não formatador, por exemplo vi, nano, emacs, gedit, bluefish,...
No Windows, sugiro Notepad++ (que não é nem o Notepad nem o WordPad).

Frase de efeito: A questão é a que atormenta o mundo dos desenvolvedores desde que a IBM é a IBM: codificação de caracteres e formato de arquivos texto.

  • A codificação de caracteres mais usada atualmente é UTF-8. Nela caracteres são codificados em números de comprimento variável (um, dois, três ou quatro bytes) - o suficiente para representar qualquer caracter de qualquer alfabeto do mundo.
  • Windows distribuído no Brasil usa ou CP-1252 ou ISO8859-1 ou ISO8859-15, que são os code pages para alfabetos latinos. São codificações de tamanho fixo (1 byte) em que os primeiros 127 códigos são iguais ao UTF-8 e iguais à tabela ASCII.
  • Há editores de texto no Windows que permitem salvar em UTF-8, mas alguns destes seguem a orientação da MS para arquivos neste formato ao invés de seguir a orientaçao do consórcio unicode (que é a entidade que regula essa codificação, diga-se de passagem). Pela orientação da MS, arquivos UTF-8 devem ter o marcador de ordem de bytes (BOM) - são três bytes indicando que o arquivo é UTF-8. Pela orientação do consórcio unicode, esse marcador deve ser omitido.
  • javac (o compilador java) assume que o arquivo-fonte é codificado em UTF-8 do consórcio unicode, independente da plataforma.

Vamos à combinatória:
Escrever arquivos em windows com CP-1252 ou ISO... usando só os 127 primeiros caracteres (alfabeto romano, minúsculas, maiúsculas, números e boa parte dos sinais de pontuação, sem caracteres acentuados nem cedilha) vai ser editado (quase* da mesma forma) em Win e Lin e não haverá problemas de codificação de caracteres em nenhum JDK.

Usar caracteres acentuados APENAS nos comentários e mensagens e manter o restante inalterado só vai atrapalhar na impressão das mensagens. A compilação e execução são normais com o uso de -encoding ISO8859-1.

Usar caracteres acentuados nos nomes de variáveis e manter o restante como no caso 1 causa erro de compilação.

Escrever arquivos em windows com UTF-8 sem BOM. Compila e executa sem problemas.

Escrever arquivos em windows com UTF-8 com BOM. Causa erro de compilação. O arquivo pode ser ajustado convertendo com Notepad++ ou editando o arquivo em modo binário e removendo o BOM.

quase* pois Windows codifica quebra de linha com \10\13 e UNIX com \10. Arquivos escritos num editor UNIX aparecerão em uma única linha no Notepad. Outros editores como WordPad e Word reconhecerão o arquivo e o exibirão corretamente.




Nenhum comentário:

Postar um comentário