Рубрики
Без рубрики

Python: Используйте режим UTF-8 в Windows!

Резюме: установите переменную среды. На MacOS и Linux UTF-8 является стандартным Encodi … Tagged с Python, Windows.

Резюме: установите Pythonutf8 = 1 переменная среды.

На MacOS и Linux UTF-8 уже является стандартным кодированием. Но Windows по -прежнему использует устаревшее кодирование (например, CP1252, CP932 и т. Д.) В качестве кодирования системы.

Python очень хорошо работает о именах файлов и консоли IO (например, используйте ~ W API). Но кодировка устаревшей системы используется для кодирования текстовых файлов и труб по умолчанию.

Это очень распространенная ошибка, которая опускает Encoding = "UTF-8" вариант. Разработчики, которые используют macOS или Linux, не имеют никаких проблем по ошибке.

Например, даже Учебное пособие по упаковке в Packaging.python.org использует этот фрагмент кода:

with open("README.md", "r") as fh:
    long_description = fh.read()

Когда Readme.md Содержит некоторые неасциии (например, эмодзи Unicode), setup.py потерпит неудачу в Windows. Пользователи Windows не могут установить пакет, когда колесо не предоставлено. (Я отправил запрос на привлечение , чтобы исправить этот пример кода.)

Я полагаю, что многие программисты Python страдают этим текстовым файлом по умолчанию, кодирующим в Windows, потому что:

  • Кодирование исходного кода Python по умолчанию-UTF-8
  • UTF-8 является стандартным кодированием Интернета
  • Современные текстовые редакторы, такие как VS-код, используют UTF-8 по умолчанию. И даже notepad.exe выбрал UTF-8 для кодирования по умолчанию!

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

Но есть хорошие новости: Python 3.7 представил “UTF-8 Mode” Анкет (Спасибо Виктору Стиннеру !!)

Когда режим UTF-8 включен, Python использует UTF-8 в качестве кодирования по умолчанию для текстовых файлов вместо кодирования системы. Вы можете жить в мире »UTF-8 по умолчанию. Другие устаревшие кодировки используются только при явном указании. “Как MacOS и Linux.

Чтобы включить режим UTF-8:

  • Установите переменную среды Pythonutf8 = 1 , или же
  • Используйте -Xutf8 Опция командной строки.

Оригинал: “https://dev.to/methane/python-use-utf-8-mode-on-windows-212i”