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

Door UTF8 als standaard tekencodering in te stellen in Windows 7

is er een manier om Windows 7 in te stellen om wereldwijd UTF-8 als standaard te gebruiken? is echt vervelend om elke tekstverwerker in te stellen om het te gebruiken.

Antwoorden (2)

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

Het korte antwoord is nee, het is niet mogelijk.

Om het uit te werken, ik ben bang dat je geen globale coderingsoptie zult vinden in Windows 7 die je beide 1) een globale standaardinstelling laat instellen die 2) alle applicaties die je hebt genoemd zou gehoorzamen.

*Ook wil ik vragen wat hier het probleem is dat je probeert op te lossen? *

Het is aan de applicatie om te kiezen of ze intern unicode gebruiken om gegevens weer te geven. Hoewel het gebruik van unicode wordt aangemoedigd ](http://msdn.microsoft.com/en-us/library/dd374081%28v=vs.85%29.aspx), kunt u er nooit zeker van zijn dat al uw toepassingen dit intern ondersteunen.

Wat u kan doen , is echter de standaard tekencodering voor elk van de vermelde toepassingen wijzigen:

  • Voor Eclipse kan de standaard codering voor nieuwe bestanden worden ingesteld vanaf Vensters > Voorkeuren > Algemeen > Inhoudstypen (zie post op Eclipse-communautaire formulieren )
  • Voor Kladblok++, Navigeer naar Settings > Preferences > New Document/Default/Directory en zet Encoding op UTF-8
  • Wat Thunderbird betreft, ik ben er vrij zeker van dat het al UTF-8 gebruikt als de standaard codering? (zie deze opmerkingen over tekencodering )
  • In het geval van OpenOffice (en LibreOffice) hoeft u zich eigenlijk niet eens druk te maken over codering, aangezien documenten die door OpenOffice worden opgeslagen gebaseerd zijn op XML, waarbij de codering intern in de XML-bestanden wordt gespecificeerd (en UTF-8 is daar ook al de standaard)
  • Vanuit UTF-8 point-of-view is PowerShell lastig. Het heeft standaard codering van UTF-16LE.
  • Voor het uitvoeren van bestanden van PowerShell naar UTF-8, zie dit antwoord
  • Voor het wijzigen van de standaard codering zie dit antwoord
23
23
23
2011-04-17 06:49:09 +0000

Dit is vooral niet mogelijk omdat Windows UTF-8 niet toestaat als de ANSI-codepagina van het systeem, hoewel het wel een ANSI-codepagina heeft voor UTF-8, codepagina 65001 . Hier lijken verschillende redenen voor te zijn:

  • Toen Unicode nieuw was besloot Microsoft dat UCS-2 de beste manier was om Unicode te ondersteunen. In die tijd was Unicode 16-bits.
  • Windows heeft een ANSI-codepagina voor elke ondersteunde taal , in tegenstelling tot Unix en Linux waar de taal en codering onafhankelijk van elkaar kan worden ingesteld.
  • Codepagina 65001 werkt niet overal. Het is specifiek gebroken met enkele van de MultiByte-ondersteuning in Windows die verwachten dat multibyte-tekens één of twee bytes nodig hebben, terwijl UTF-8 tussen één en vier bytes vereist. De WriteFile() API bijvoorbeeld geeft een onjuist resultaat weer onder codepagina 65001, die door alle bibliotheekcodes heen borrelt die erop gebaseerd zijn, zoals write() .

Wijlen Michael Kaplan, die bij Microsoft aan de internationalisering werkte, had een blog, “Sorting it all Out” , met verschillende berichten over gerelateerde onderwerpen. Ik mailde hem direct over een aantal van deze zorgen terug in de tijd.