Définir UTF8 comme encodage de caractères par défaut dans Windows 7

63

existe-t-il un moyen de configurer Windows 7 pour utiliser de manière globale le format UTF-8?
son vraiment ennuyeux de configurer chaque éditeur de texte pour l'utiliser.

Baarn
la source
4
Donc, vous voulez dire quelque chose au système d'exploitation… et ensuite, comme par magie, tous les éditeurs l'ont compris? :) Combien d'éditeurs utilisez-vous? Toutes les 3 minutes, un autre? Quoi qu'il en soit: superuser.com/questions/221593/windows-7-utf-8-and-unicode D'après ce que je sais: Windows utilise UTF16 en interne partout, et je doute que vous puissiez changer cela.
Akira
1
les éditeurs que j'utilise: bloc-notes, bloc-notes ++, qt, éclipse, thunderbird, open office et quelques autres ... je ne parle pas seulement des éditeurs de texte brut, mais de tout ce qui fonctionne avec du texte en entrée et en sortie. la plupart des éditeurs de texte indépendants de la plate-forme utilisent utf-8 en standard sous Linux mais utilisent Latin-1 sous Windows.
Baarn
Pas sur Windows 7 mais c'est possible sur Windows 10
phuclv

Réponses:

45

La réponse courte est non, ce n'est pas possible .

Pour élaborer, je crains fort que vous ne trouviez pas d’option de codage global dans Windows 7 qui vous permette à la fois 1) de définir un paramètre par défaut global auquel 2) toutes les applications que vous avez énumérées obéiraient.

Aussi, je voudrais demander quel est le problème que vous essayez de résoudre?

Il appartient à l’application de choisir si elle utilise unicode en interne pour représenter les données. Bien que l'utilisation de l'unicode soit encouragée , vous ne pouvez jamais être sûr que toutes vos applications le prennent en charge en interne.

Ce que vous pouvez faire , cependant, est de changer le codage de caractères par défaut pour chacune des applications répertoriées:

  • Pour Eclipse, le codage par défaut des nouveaux fichiers peut être défini dans Windows> Préférences> Général> Types de contenu (voir l' article sur Eclipse Community Forms ).
  • Pour le Bloc-notes ++, accédez à Paramètres> Préférences> Nouveau document / Par défaut / Répertoire et définissez Encodage sur UTF-8.
  • Quant à Thunderbird, je suis quasiment sûr qu’il utilise déjà le codage par défaut UTF-8? (voir ces notes sur l'encodage des caractères )
  • Dans le cas d’OpenOffice (et de LibreOffice), vous n’avez même pas besoin de vous soucier de l’encodage, car les documents enregistrés par OpenOffice sont basés sur XML, dans lequel l’encodage est spécifié en interne dans les fichiers XML (et UTF-8 est déjà utilisé). le défaut là aussi)
  • Du point de vue UTF-8, PowerShell est délicat. Il a un encodage par défaut de UTF-16LE.
Jsalonen
la source
4
pas la réponse que j'espérais obtenir mais je pense que je dois vivre avec la vérité, merci =)
Baarn
pour les fenêtres du bloc-notes?
Mimouni
23

Ce n'est pas possible principalement parce que Windows n'autorise pas UTF-8 en tant que page de code ANSI du système, même s'il possède une page de code ANSI pour UTF-8, page de code 65001 . Il semble y avoir plusieurs raisons à cela:

  • Quand Unicode a été créé, Microsoft a décidé qu'UCS-2 serait le meilleur moyen de prendre en charge Unicode. A cette époque, Unicode était en 16 bits.
  • Windows possède une page de code ANSI pour chaque langue prise en charge , contrairement à Unix et Linux où la langue et le codage peuvent être définis indépendamment.
  • La page de code 65001 ne fonctionne pas partout. Plus précisément, il est interrompu par la prise en charge multi-octets de Windows qui prévoit que les caractères multi-octets nécessitent un ou deux octets, tandis que UTF-8 nécessite entre un et quatre octets. L' WriteFile()API, par exemple, renvoie un résultat incorrect sous la page de codes 65001, qui passe en revue tout le code de la bibliothèque, tel que write().

Le regretté Michael Kaplan, qui travaillait sur l'internationalisation chez Microsoft, avait un blog, "Sorting it all out Out" , avec plusieurs articles sur des sujets connexes. Je lui ai envoyé directement un courrier électronique au sujet de certaines de ces préoccupations dans la journée.

hippietrail
la source
Notez que lorsque Windows (NT) a été conçu, il n’y avait pas de UTF-8. UCS-2 était donc un choix vraiment sain (et impossible à changer par la suite, sauf en UTF-16).
Joey
2
La raison en est que les paramètres régionaux UTF-8 peuvent interrompre certaines fonctions (par exemple, _mbsrev) car elles ont été écrites pour supposer que les codages sur plusieurs octets n’utilisent pas plus de 2 octets par caractère. Ainsi, jusqu’à présent, les pages de codes avec plus d’octets, telles que GB 18030 (cp54936 ) et UTF-8 n’ont pas pu être définis comme paramètres régionaux. . Mais au moins, il est
phuclv