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


63

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


4
Итак, вы хотите что-то сказать ОС ... и затем волшебным образом все редакторы это поймут? :) Сколько редакторов вы используете? Каждые 3 минуты еще один? В любом случае: superuser.com/questions/221593/windows-7-utf-8-and-unicode Из того, что я знаю: Windows везде использует UTF16, и я сомневаюсь, что вы можете это изменить.
Акира

1
редакторы, которые я использую: блокнот, notepad ++, qt, eclipse, thunderbird, open office и некоторые другие ... я говорю не только о текстовых редакторах, а обо всем, что работает с вводом и выводом текста. большинство независимых от платформы текстовых редакторов используют utf-8 в качестве стандарта в Linux, но используют Latin-1 в Windows.
Baarn

Не в Windows 7, но возможно в Windows 10
phuclv

Ответы:


45

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

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

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

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

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

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

4
не ответ, который я надеялся получить, но я думаю, что должен жить с правдой, спасибо =)
Baarn

для окна блокнота?
Мимуни

23

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

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

У покойного Майкла Каплана, который работал над интернационализацией в Microsoft, был блог "Sorting it all Out" , с несколькими постами на смежные темы. Я отправил ему электронное письмо о некоторых из этих проблем в тот день.


Обратите внимание, что когда была задумана Windows (NT), не было UTF-8. Таким образом, UCS-2 был действительно разумным выбором (и впоследствии его невозможно было изменить, кроме как в UTF-16).
Джои

2
Причина в том, что языковой стандарт UTF-8 может нарушать некоторые функции (возможный пример - _mbsrev), так как они были написаны так, чтобы предполагать, что многобайтовые кодировки используют не более 2 байтов на символ, и до сих пор кодовые страницы с большим количеством байтов, таких как GB 18030 (cp54936). ) и UTF-8 не может быть установлен в качестве локали. , Но, по крайней мере, теперь можно установить локаль UTF-8 в Windows 10
phuclv
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.