Comments 53
давно винду в глаза не видел, но предположу что эта галочка добавляет поддержку utf-8 но не ломает уже работающую 1251
Да и новый софт начинающие Windows программисты C/C++ не торопятся писать под unicode, ведь это везде wchar_t, а в древнючих учебниках, с которых копипастят примеры, сплошной char для строк. Только уже опытные, которые понимают зачем все эти вещи, пишут где надо char, где надо — wchar_t, где надо — конвертируют из однобайтной кодировки в utf-16.
Если софт хоть сколько-нибудь общается со сторонними источники данных, то там практически везде utf.
И для однообразия проще везде использовать wchar_t.
в итоге проблема не решена. вы её решили лично на вашем компьютере в вашей комнате. для других решение не подходит…
Но я допускаю, что не сумел охватить все возможные ситуации.
Это тянет на issue к фреймворку, где можно обсудить баг это или фича и, может быть, внести какие-то комментарии в документацию. Зачем статья на хабре не ясно, ну давайте каждую найденную проблему в каждом фреймворке описывать статьёй
А зачем вообще надеяться на какую-то системную кодировку и пытаться исправлять её функцией в стадии бета-версии? Есть же возможность принудительно работать с данными в UTF-8, я правильно понимаю?
А если консоль запускать как "cmd /U" эффект повторяется? А если перед запуском питона сделать chcp 65001?
А если установить переменную окружения при запуске PYTHONIOENCODING=UTF-8 , поможет?
На курсах Django в Win10 запускают?
(как страшно жить… ©)
То есть на курсах нет денег на бесплатный Linux, зато есть деньги купить Windows и есть время и желание упражняться в танцах по граблям с питоном и Джанго на Windows?
А чтобы купить еще один комп, надо заработать на этот комп…
Зачем такие сложности? У меня на компе 3 Винды, MacOS и Centos. VmWare спасает!
А то на курсы народ как раз для того и идет, чтоб всему этому научиться, причем часто совсем с нуля.
Не хотел вас обидеть, хотел посоветовать решение. Извините, если тон вас задел.
P.S. у вас указано, что вы сеньор фронтендер ..)
А вот кое-кто из одной группы со мной реально с нуля пришел и без запаса денег на время учебы.
И кстати, виртуалки и линукс в программе курсов есть. Просто у нас там не навязывают, а учат.
скачал с торрента дистрибутив под VmWare… в том и дело, что здесь не надо быть крутым специалистом с крёстным Биллом Гейтсом, просто надо гуглить, гуглить и ещё раз гуглить… столько раз я собирался изобрести костыльный велосипед, и столько раз оказывалось, что уже есть решение проще, надежнее и правильнее ))
Не знаю про vmware, а для установки в virtualbox есть готовый скрипт на гитхабе, гуглится по macos virtualbox - пускаешь и делаешь то что он говорит.
P.S. у вас указано, что вы сеньор фронтендер ..)
Ну мало ли...
Вы не понимаете.
Продать курсы "Django на Windows 10" — это вам не кастрюлю Цептер кому-нибудь втюхнуть.
Это — Искусство с большой буквы.
Понимать надо.
Какая это причуда ? Это стандартное поведение системы. Кодировка же win1251
Судя по всему, это в самом ядре питона по неясной причине не стали прописывать кодировку по умолчанию, а вместо нее использовали кодировку операционной системы.
Использовали стандартные системные вызовы без указания кодировки. Поэтому по умолчанию используется win1251.
Согласитесь, это не баг или причуда Windows.
Чистый питон внутри себя как взаимодействует с внешним миром ?
Самостоятельно отправляет sata команды на HDD и сам собирает Mac/up пакеты ? Или это делает ОС с её abstraction layer ?
Но сдается мне, что кодировки лежат несколько выше по уровню абстракции.
Python по умолчанию использует системную кодировку. для Windows = cp 1251
Официальный док — В доке как раз написано то самое поведение которое вы наблюдаете:
Windows still uses legacy encodings for the system encoding (the ANSI Code Page). Python uses it for the default encoding of text files (e.g. locale.getpreferredencoding()).
This may cause issues because UTF-8 is widely used on the internet and most Unix systems, including WSL (Windows Subsystem for Linux).
Такая ситуация встречается не только в Django. Крайне рекомендую явно указывать кодировку в которой вы собираетесь читать \ записывать файлы.
В каком шелле запускали проблемную команду, CMD или PowerShell? В статье про это не упоминается.
По поводу окошка с галкой «Бета...» на последнем скриншоте. Иногда некоторые приложения с русскоязычным интерфейсом отображаются крякозябрами, несмотря на то, что везде в системе выставлен русский (с другими языками не проверял). Есть небольшая особенность на мультиязычных системах. Если изначально ОС была англоязычной (опять же, на других не проверял), а потом установлен и активирован русский пакет локализации, то помогает смена языка в вышеупомянутом окошке — с русского на английский и обратно через перезагрузку. Возможно, переключение опции «Бета...» тоже поможет, но у меня, например, она отключена и я её не трогал.
Очередная причуда Win 10 — и как с ней бороться