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


63

existe uma maneira de configurar o Windows 7 para usar globalmente o UTF-8 como padrão?
é realmente irritante definir todos os editores de texto para usá-lo.


4
Então você quer dizer algo ao sistema operacional ... e magicamente todos os editores entendem isso? :) Quantos editores você usa? A cada 3 minutos outro? Enfim: superuser.com/questions/221593/windows-7-utf-8-and-unicode Pelo que sei: o Windows usa o UTF16 internamente em todos os lugares, e duvido que você possa mudar isso.
akira

11
editores que uso: bloco de notas, bloco de notas ++, qt, eclipse, thunderbird, escritório aberto e outros ... não estou falando apenas de editores de texto simples, mas de tudo o que funciona com texto e saída. a maioria dos editores de texto independentes da plataforma usa o utf-8 como padrão no Linux, mas usa o Latin-1 no Windows.
Baarn

Não no Windows 7, mas é possível no Windows 10
phuclv 22/06

Respostas:


45

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) todos os aplicativos que você listou obedeceriam.

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 do unicode seja incentivado , você nunca pode ter certeza de que todos os seus aplicativos 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 configurada em Windows> Preferências> Geral> Tipos de Conteúdo (consulte a publicação no Eclipse Community Forms )
  • No Notepad ++, navegue para Configurações> Preferências> Novo documento / Padrão / Diretório e defina Codificação como UTF-8
  • Quanto ao Thunderbird, tenho certeza que ele já usa UTF-8 como a codificação padrão? (veja estas notas sobre codificação de caracteres )
  • No caso do OpenOffice (e LibreOffice), você nem precisa se preocupar 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 o UTF-8 já está o padrão lá também)
  • Do ponto de vista UTF-8, o PowerShell é complicado. Possui codificação padrão de UTF-16LE.
    • Para gerar arquivos do PowerShell para UTF-8, consulte esta resposta
    • Para alterar a codificação padrão, consulte esta resposta

4
não é a resposta que eu estava esperando para obter, mas eu acho que tem que viver com a verdade, obrigado =)
Baarn

para janelas do bloco de notas?
23416

23

Não é possível principalmente porque o Windows não permite UTF-8 como a página de código ANSI do sistema, mesmo que tenha uma página de código ANSI para UTF-8, página de código 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 oferecer suporte ao Unicode. Naquela época, o Unicode era de 16 bits.
  • O Windows possui uma página de código ANSI para cada idioma suportado , diferente do Unix e Linux, onde o idioma e a codificação podem ser configurados independentemente.
  • A página de código 65001 não funciona em todos os lugares. Especificamente, ele é quebrado com parte do suporte a MultiByte no Windows, que espera que caracteres multibyte exijam um ou dois bytes, enquanto o UTF-8 exige entre um e quatro bytes. A WriteFile()API, por exemplo, retorna um resultado incorreto na página de códigos 65001, que borbulha através de todo o código da biblioteca que depende dele, como write().

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


Observe que quando o Windows (NT) foi concebido, não havia UTF-8. Portanto, o UCS-2 era realmente uma escolha realmente sensata (e impossível de mudar depois, exceto para UTF-16).
Joey

2
O motivo é que o código de idioma UTF-8 pode quebrar algumas funções (um exemplo possível é _mbsrev), pois elas foram gravadas para assumir codificações multibyte usadas com não mais de 2 bytes por caractere, portanto, até agora, as páginas de código com mais bytes, como GB 18030 (cp54936 ) e UTF-8 não pôde ser definido como o código do idioma. . Mas pelo menos agora é possível definir a localidade UTF-8 no Windows 10
phuclv
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.