Impostazione UTF8 come codifica caratteri predefinita in Windows 7


63

c'è un modo per impostare Windows 7 per utilizzare globalmente UTF-8 come standard?
è davvero fastidioso impostare ogni singolo editor di testo per usarlo.


4
Quindi vuoi dire qualcosa al sistema operativo ... e poi magicamente tutti gli editor lo raccolgono? :) Quanti editor usi? Ogni 3 minuti un altro? Comunque: superuser.com/questions/221593/windows-7-utf-8-and-unicode Da quello che so: Windows utilizza UTF16 internamente ovunque, e dubito che tu possa cambiarlo.
Akira,

1
editor che uso: notepad, notepad ++, qt, eclipse, thunderbird, open office e alcuni altri ... non sto solo parlando di editor di testo semplice ma di tutto ciò che funziona con il testo in entrata e in uscita. la maggior parte degli editor di testo indipendenti dalla piattaforma usa utf-8 come standard in Linux ma usa Latin-1 in Windows.
Baarn,

Non su Windows 7 ma è possibile su Windows 10
phuclv il

Risposte:


45

La risposta breve è no, non è possibile .

Per elaborare, temo che non troverai un'opzione di codifica globale in Windows 7 che ti consenta entrambi 1) di impostare un valore predefinito globale a cui 2) tutte le applicazioni elencate obbedirebbero.

Inoltre, vorrei chiedere qual è il problema qui che stai cercando di risolvere?

Spetta all'applicazione scegliere se utilizzare unicode internamente per rappresentare i dati. Sebbene l'uso di Unicode sia incoraggiato , potresti non essere mai sicuro che tutte le tue applicazioni lo supportino internamente.

Quello che puoi fare , tuttavia, è cambiare la codifica dei caratteri predefinita per ciascuna delle applicazioni elencate:

  • Per Eclipse, la codifica predefinita per i nuovi file può essere impostata da Windows> Preferenze> Generale> Tipi di contenuto (vedi post su Moduli comunità Eclipse )
  • Per Notepad ++, seleziona Impostazioni> Preferenze> Nuovo documento / Predefinito / Directory e imposta Codifica su UTF-8
  • Per quanto riguarda Thunderbird, sono abbastanza sicuro che utilizza già UTF-8 come codifica predefinita? (vedi queste note sulla codifica dei caratteri )
  • Nel caso di OpenOffice (e LibreOffice), in realtà non devi nemmeno preoccuparti della codifica, poiché i documenti salvati da OpenOffice sono basati su XML, in cui la codifica è specificata internamente nei file XML (e UTF-8 è già il default anche lì)
  • Dal punto di vista UTF-8, PowerShell è complicato. Ha la codifica predefinita di UTF-16LE.

4
non la risposta che speravo di ottenere ma penso di dover convivere con la verità, grazie =)
Baarn,

per finestre di blocco note?
Mimouni,

23

Non è possibile principalmente perché Windows non consente UTF-8 come codepage ANSI del sistema anche se ha una codepage ANSI per UTF-8, codepage 65001 . Sembra che ci siano diverse ragioni per questo:

  • Quando Unicode fu nuovo, Microsoft decise che UCS-2 sarebbe stato il modo migliore per supportare Unicode. A quel tempo Unicode era a 16 bit.
  • Windows ha una tabella codici ANSI per ogni lingua supportata , a differenza di Unix e Linux in cui la lingua e la codifica possono essere impostate in modo indipendente.
  • La tabella codici 65001 non funziona ovunque. In particolare è rotto con alcuni dei supporti MultiByte in Windows che prevedono che i caratteri multibyte richiedano uno o due byte mentre UTF-8 richiede tra uno e quattro byte. L' WriteFile()API, ad esempio, restituisce un risultato errato nella tabella codici 65001 che sfoglia attraverso tutto il codice della libreria basandosi su di esso come write().

Il compianto Michael Kaplan, che lavorava all'internazionalizzazione di Microsoft, aveva un blog, "Ordinare tutto" , con diversi post su argomenti correlati. Gli ho mandato un'email direttamente su alcune di queste preoccupazioni nel corso della giornata.


Si noti che quando è stato concepito Windows (NT), non esisteva UTF-8. Quindi UCS-2 era in realtà una scelta davvero sana (e impossibile cambiare in seguito, eccetto UTF-16).
Joey,

2
Il motivo è perché le impostazioni internazionali UTF-8 potrebbero interrompere alcune funzioni (un possibile esempio è _mbsrev) poiché sono state scritte per assumere codifiche multibyte utilizzate non più di 2 byte per carattere, quindi fino ad ora codificare pagine con più byte come GB 18030 (cp54936 ) e UTF-8 non possono essere impostati come impostazioni internazionali. . Ma almeno ora è possibile impostare la locale UTF-8 su Windows 10
phuclv il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.