Настройка UTF8 в качестве кодировки символов по умолчанию в Windows 7
63
Есть ли способ настроить Windows 7 на глобальное использование UTF-8 в качестве стандарта?
это действительно раздражает, чтобы каждый текстовый редактор использовал его.
Итак, вы хотите что-то сказать ОС ... и затем волшебным образом все редакторы это поймут? :) Сколько редакторов вы используете? Каждые 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.
Чтобы уточнить, я боюсь, что вы не найдете глобальную опцию кодирования в 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.
Для вывода файлов из PowerShell в UTF-8 см. Этот ответ
Для изменения кодировки по умолчанию см. Этот ответ
не ответ, который я надеялся получить, но я думаю, что должен жить с правдой, спасибо =)
Baarn
для окна блокнота?
Мимуни
23
Это невозможно в основном потому, что Windows не допускает UTF-8 в качестве системной кодовой страницы ANSI, даже если она имеет кодовую страницу ANSI для UTF-8, кодовую страницу 65001 . Кажется, есть несколько причин для этого:
Когда Unicode был новым, Microsoft решила, что UCS-2 будет лучшим способом поддержки Unicode. В то время Unicode был 16-битным.
Кодовая страница 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
Ответы:
Краткий ответ - нет, это невозможно .
Чтобы уточнить, я боюсь, что вы не найдете глобальную опцию кодирования в Windows 7, которая позволит вам обоим 1) установить глобальное значение по умолчанию, которому будут подчиняться 2) все приложения, которые вы перечислили.
Кроме того, я хотел бы спросить, какую проблему здесь вы пытаетесь решить?
Приложение самостоятельно выбирает, используют ли они Юникод для представления данных. Хотя использование Юникода приветствуется , вы никогда не можете быть уверены, что все ваши приложения действительно поддерживают его.
Однако вы можете изменить кодировку символов по умолчанию для каждого из перечисленных приложений:
UTF-16LE
.источник
Это невозможно в основном потому, что Windows не допускает UTF-8 в качестве системной кодовой страницы ANSI, даже если она имеет кодовую страницу ANSI для UTF-8, кодовую страницу 65001 . Кажется, есть несколько причин для этого:
WriteFile()
API , например , возвращает неправильный результат при кодировке 65001 , которая пузырится через все библиотеки кода , опираясь на него , такие какwrite()
.У покойного Майкла Каплана, который работал над интернационализацией в Microsoft, был блог "Sorting it all Out" , с несколькими постами на смежные темы. Я отправил ему электронное письмо о некоторых из этих проблем в тот день.
источник