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

Impostare UTF8 come codifica dei caratteri di default in Windows 7

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

Risposte (2)

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

La risposta breve è no, non è possibile.

Per approfondire, temo che non troverete un'opzione di codifica globale in Windows 7 che vi permetta di 1) impostare un default globale che 2) tutte le applicazioni che avete elencato obbedirebbero.

** Inoltre, vorrei chiedervi qual è il problema qui che state cercando di risolvere?**

Spetta all'applicazione scegliere se utilizzare internamente unicode per rappresentare i dati. Mentre l'uso dell'unicode è incoraggiato , potreste non essere mai sicuri che tutte le vostre applicazioni lo supportino internamente.

Quello che si può fare** , tuttavia, è cambiare la codifica dei caratteri di default per ciascuna delle applicazioni elencate:

  • Per Eclipse, la codifica di default per i nuovi file può essere impostata da Windows > Preferenze > Generale > Tipi di contenuto (vedi post su Eclipse Community Forms )
  • Per Notepad++, navigare su Impostazioni > Preferenze > Nuovo Documento/Default/Directory e impostare la codifica su UTF-8
  • Per quanto riguarda Thunderbird, sono abbastanza sicuro che usi già UTF-8 come codifica predefinita? (vedere queste note sulla codifica dei caratteri )
  • Nel caso di OpenOffice (e LibreOffice), in realtà non c'è nemmeno bisogno di preoccuparsi 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 di UTF-8, PowerShell è complicato. Ha la codifica predefinita di UTF-16LE.
  • Per l'output dei file da PowerShell a UTF-8, vedere questa risposta
  • Per cambiare la codifica predefinita vedere questa risposta
23
23
23
2011-04-17 06:49:09 +0000

Non è possibile soprattutto perché Windows non permette UTF-8 come sistema ANSI, anche se ha una codifica ANSI per UTF-8, codepage 65001 . Sembrano esserci diverse ragioni per questo:

  • Quando Unicode era nuovo Microsoft ha deciso che UCS-2 sarebbe stato il modo migliore per supportare Unicode. A quel tempo Unicode era a 16 bit.
  • Windows ha una sola pagina di codice ANSI per ogni lingua supportata , a differenza di Unix e Linux dove la lingua e la codifica possono essere impostate indipendentemente.
  • Il codice a pagina 65001 non funziona ovunque. In particolare è rotto con alcuni dei supporti MultiByte in Windows che si aspettano che i caratteri multibyte richiedano uno o due byte, mentre UTF-8 richiede da uno a quattro byte. La WriteFile() API per esempio restituisce un risultato errato sotto la pagina 65001 che si ripete in tutti i codici di libreria che si basano su di essa come write() .

Il defunto Michael Kaplan che lavorava all'internazionalizzazione alla Microsoft aveva un blog, “Sorting it all Out” , con diversi post su argomenti correlati. Gli ho inviato direttamente un'e-mail su alcuni di questi argomenti in passato.