Установка UTF8 в качестве кодировки символов по умолчанию в Windows 7

Установка UTF8 в качестве кодировки символов по умолчанию в Windows 7

есть ли способ настроить Windows 7 на глобальное использование UTF-8 в качестве стандарта?
очень раздражает настраивать каждый текстовый редактор на его использование.

решение1

Короткий ответ:нет, это невозможно.

Если говорить конкретнее, то, боюсь, вы не найдете в Windows 7 глобальной опции кодирования, которая позволяла бы вам 1) задать глобальное значение по умолчанию, которому 2) будут подчиняться все перечисленные вами приложения.

Также я хотел бы спросить, какую проблему вы пытаетесь решить?

Приложение само решает, использовать ли ему Unicode для внутреннего представления данных.Хотя использование юникода приветствуется, вы никогда не сможете быть уверены, что все ваши приложения действительно поддерживают его внутренне.

Что тысможет сделать, однако это изменение кодировки символов по умолчанию для каждого из перечисленных приложений:

  • Для Eclipse кодировку по умолчанию для новых файлов можно установить изWindows > Настройки > Общие > Типы содержимого(видетьпост на Eclipse Community Forms)
  • Для Notepad++ перейдите кНастройки > Настройки > Новый документ/По умолчанию/Каталоги установите Кодировку наUTF-8
  • Что касается Thunderbird, я почти уверен, что он уже использует UTF-8 в качестве кодировки по умолчанию? (см.эти заметки о кодировке символов)
  • В случае OpenOffice (и LibreOffice) вам на самом деле даже не нужно беспокоиться о кодировке, поскольку документы, сохраненные OpenOffice, основаны на XML, в котором кодировка указывается внутри XML-файлов (иUTF-8там тоже уже по умолчанию)
  • С точки зрения UTF-8 PowerShell — штука сложная. По умолчанию у него кодировка UTF-16LE.

решение2

Это невозможно, в основном, потому, что Windows не допускает UTF-8 в качестве системной кодовой страницы ANSI, хотя у нее есть кодовая страница ANSI для UTF-8.кодовая страница 65001. Причин этому, по-видимому, несколько:

  • Когда Unicode был новым, Microsoft решила, что UCS-2 будет лучшим способом поддержки Unicode. В то время Unicode был 16-битным.
  • В Windows имеется одна кодовая страница ANSI для каждого поддерживаемого языка., в отличие от Unix и Linux, где язык и кодировку можно устанавливать независимо.
  • Кодовая страница 65001 работает не везде. В частности, она не работает с некоторыми функциями поддержки MultiByte в Windows, которые ожидают, что многобайтовые символы потребуют один или два байта, тогда как UTF-8 требует от одного до четырех байтов.WriteFile()APIнапример, возвращает неверный результат в кодовой странице 65001, который всплывает во всем библиотечном коде, использующем ее, напримерwrite().

У покойного Майкла Каплана, работавшего над интернационализацией в Microsoft, был блог,«Все разберем», с несколькими постами на смежные темы. Я написал ему напрямую по электронной почте о некоторых из этих проблем еще в тот день.

Связанный контент