Definindo UTF8 como padrão Codificação de caracteres no Windows 7

57

Existe uma maneira de configurar o Windows 7 para usar globalmente o UTF-8 como padrão?
é realmente irritante definir cada editor de texto para usá-lo.

    
por Baarn 31.01.2011 / 05:29

2 respostas

42

A resposta curta é não, não é possível .

Para elaborar, receio que você não encontre uma opção de codificação global no Windows 7 que permita a você 1) definir um padrão global que 2) todas as aplicações listadas estariam obedecendo.

Além disso, gostaria de perguntar qual é o problema aqui que você está tentando resolver?

Cabe ao aplicativo escolher se eles usam unicode internamente para representar dados. Embora o uso de unicode seja incentivado , talvez você nunca tenha certeza que todas as suas aplicações de fato o suportam internamente.

O que você pode fazer , no entanto, é alterar a codificação de caracteres padrão para cada um dos aplicativos listados:

  • Para o Eclipse, a codificação padrão para novos arquivos pode ser definida em Windows > Preferências > Geral > Tipos de conteúdo (consulte postar nos formulários da comunidade Eclipse )
  • Para o Notepad ++, navegue até Configurações > Preferências > Novo documento / padrão / diretório e definir codificação para UTF-8
  • Quanto ao Thunderbird, tenho certeza que ele já usa o UTF-8 como a codificação padrão? (veja estas notas sobre a codificação de caracteres )
  • No caso do OpenOffice (e do LibreOffice), você nem precisa se importar com a codificação, pois os documentos salvos pelo OpenOffice são baseados em XML, nos quais a codificação é especificada internamente nos arquivos XML (e UTF-8 já é o padrão lá também)
  • Do ponto de vista UTF-8, o PowerShell é complicado. Tem codificação padrão de UTF-16LE .
por 02.02.2011 / 10:14
19

Não é possível principalmente porque o Windows não permite o UTF-8 como a página de códigos ANSI do sistema, embora ele tenha uma página de códigos ANSI para UTF-8, página de códigos 65001 . Parece haver várias razões para isso:

  • Quando o Unicode era novo, a Microsoft decidiu que o UCS-2 seria a melhor maneira de suportar o Unicode. Naquela época, o Unicode tinha 16 bits.
  • O Windows tem uma página de códigos ANSI para cada idioma suportado , diferente do Unix e do Linux, onde a linguagem e a codificação podem ser definido de forma independente.
  • A página de códigos 65001 não funciona em todos os lugares. Especificamente, ele é quebrado com algum suporte MultiByte no Windows, que espera que os caracteres multibyte precisem de um ou dois bytes, enquanto o UTF-8 requer entre um e quatro bytes. A WriteFile() API por exemplo retorna um resultado incorreto na página de código 65001, que aparece em todo o código da biblioteca, como write() .

O falecido Michael Kaplan que trabalhou na internacionalização na Microsoft tinha um blog, "Classificando tudo" , com vários posts sobre tópicos relacionados. Eu enviei um e-mail diretamente sobre algumas dessas preocupações no passado.

    
por 17.04.2011 / 08:49