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

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

63
задан 17.08.2011, 07:55

2 ответа

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

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

Кроме того, я хотел бы спросить, какова проблема здесь, что Вы пытаетесь решить?

Это до приложения, чтобы выбрать, используют ли они unicode внутренне для представления данных. В то время как использование unicode поощряется, Вы никогда не можете быть уверены, что все Ваши приложения на самом деле внутренне поддерживают его.

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

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

Это не возможно главным образом, потому что 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().

У покойного Michael Kaplan, который работал над интернационализацией в Microsoft, был блог, "Улаживая все это", с несколькими сообщениями по смежным темам. Я послал ему по электронной почте непосредственно о некоторых из этих проблем назад в день.

23
ответ дан 07.12.2019, 08:16

Теги

Похожие вопросы