2011-01-31 04:29:39 +0000 2011-01-31 04:29:39 +0000
64
64

Definir o UTF8 como codificação de caracteres padrão no Windows 7

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

Respostas (2)

46
46
46
2011-02-02 09:14:36 +0000

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

Para elaborar, receio que não encontrará uma opção de codificação global no Windows 7 que lhe permita 1) definir uma predefinição global que 2) todas as aplicações que listou obedeceriam.

Também, gostaria de perguntar qual é o problema aqui que está a tentar resolver?

Cabe à aplicação escolher se utiliza unicode internamente para representar os dados. Embora o uso de unicode seja encorajado , pode nunca ter a certeza de que todas as suas aplicações o suportam internamente.

O que você ** pode fazer** , no entanto, é alterar a codificação de caracteres padrão para cada uma das aplicações listadas:

  • Para o Eclipse, a codificação por defeito para novos ficheiros pode ser definida a partir de Windows > Preferências > Geral > Tipos de Conteúdo (ver post em Formulários Comunitários Eclipse )
  • Para Notepad++, navegar para Configurações > Preferências > Novo Documento/Default/Directory e definir Codificação para UTF-8
  • Quanto ao Thunderbird, tenho quase a certeza que já utiliza UTF-8 como codificação por defeito? (veja estas notas sobre codificação de caracteres )
  • No caso do OpenOffice (e LibreOffice), você na verdade não precisa nem se preocupar com a codificação, já que os documentos salvos pelo OpenOffice são baseados em XML, no qual a codificação é especificada internamente nos arquivos XML (e UTF-8 já é o padrão lá também)
  • Do ponto de vista do UTF-8, o PowerShell é complicado. Tem a codificação por defeito de UTF-16LE.
  • Para enviar ficheiros de PowerShell para UTF-8, veja esta resposta
  • Para alterar a codificação por defeito veja esta resposta
23
23
23
2011-04-17 06:49:09 +0000

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

  • Quando o Unicode era novo a Microsoft decidiu que o UCS-2 seria a melhor forma de suportar o Unicode. Nessa altura o Unicode era de 16 bits.
  • Windows tem uma página de código ANSI para cada idioma suportado , ao contrário do Unix e Linux onde a linguagem e codificação podem ser definidas independentemente.
  • O código página 65001 não funciona em todo o lado. Especificamente, ele é quebrado com algum do suporte MultiByte no Windows que espera que caracteres multibyte necessitem 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 65001 que borbulha através de todos os códigos de biblioteca que dependem dela, como write() .

O falecido Michael Kaplan que trabalhou em internacionalização na Microsoft tinha um blog, “Sorting it all Out” , com vários posts sobre tópicos relacionados. Eu enviei-lhe um e-mail directamente sobre algumas destas preocupações na altura.