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

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

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

Ответы (2)

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

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

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

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

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

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

  • Для Eclipse, кодировка по умолчанию для новых файлов может быть установлена из Windows > Настройки > Общие > Типы содержимого (смотрите сообщение о формах сообщества Eclipse )
  • Для Блокнота++, перейдите к Настройки > Настройки > Новый документ/По умолчанию/Каталог и установите кодировку на UTF-8
  • Что касается Thunderbird, я уверен, что он уже использует UTF-8 в качестве кодировки по умолчанию? (смотрите эти заметки о кодировке символов )
  • В случае с OpenOffice (и LibreOffice) вам на самом деле даже не нужно беспокоиться о кодировке, так как документы, сохраненные OpenOffice, основаны на XML, в котором кодировка внутренне указана в XML-файлах (а UTF-8 уже там по умолчанию)
  • Из UTF-8 точки зрения, PowerShell хитроумно работает. Она имеет кодировку по умолчанию UTF-16LE.
  • Для вывода файлов из PowerShell в UTF-8 смотрите этот ответ
  • Для изменения кодировки по умолчанию смотрите этот ответ
23
23
23
2011-04-17 06:49:09 +0000

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

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

Покойный Майкл Кэплен (Michael Kaplan), который работал над интернационализацией в Microsoft, имел блог “Sorting it all Out” , с несколькими постами на смежные темы. Я написал ему по электронной почте о некоторых из этих проблем еще в те времена.

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

3
19
10
28
5