Not all characters are representable in cyrillic windows 1251 falling back to utf 8
Вопрос
Доброго времени суток!
В PowerShell ISE при выполнении команд командной строки выходят каракули, хотя в самой консоли PowerShell всё работает нормально.
По умолчанию кажется 866 кодировка. Ставлю 1251 тоже самое. Ставлю 65001 всё выходит на английском, а хочется на русском!
Ответы
Хорошо, но к каждой команде такое добавлять не совсем рационально. Есть возможность в начале файла ввести команду на смену кодировки и чтобы в дальнейшем всё уже в этой кодировке было? Наподобие команды chcp
Хорошо, но к каждой команде такое добавлять не совсем рационально. Есть возможность в начале файла ввести команду на смену кодировки и чтобы в дальнейшем всё уже в этой кодировке было? Наподобие команды chcp.
Или чтобы эту функцию ConvertTo-Encoding использовать для текущего процесса, т.е. PowerShell`a
Хорошо, но к каждой команде такое добавлять не совсем рационально. Есть возможность в начале файла ввести команду на смену кодировки и чтобы в дальнейшем всё уже в этой кодировке было? Наподобие команды chcp
Помогает команда [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(«cp866»), но после закрытия PowerShell ISE, опять каракули и нужно вводить? Можно как-нибудь применить навсегда?
Проблема с Windows Server 2019 Enterprise и Windows 10 Корпоративная LTSC
1 не использовать англоязычные ос в админ целях
2 решение с профилем о котором вспоминал esqado и детально описанное by Kazun
3 не использование ISE.
В качестве замены существует например VSCode или VS Comunity в которых куда удобней работать чем в ISE. Первый бесплатный, второй бесплатный но имеет лицензионные ограничения на размер команды разработчиков и компании.
The opinion expressed by me is not an official position of Microsoft
Великолепный редактор кода и немножечко текста — Sublime Text
Доброго времени суток, дорогие друзья, знакомые и прочие личности.
В ходе этого длинного пути, вымощенного миллиардами символов и строк кода, я испробовал бесчисленное количество самых разных редакторов, в том числе платных. Последним из них был Notepad++, но и ему нашлась замена. Что ж, давайте немного про эту замену и поговорим.
Редактируем, код, текст и всё такое прочее. Sublime Text.
Одним же из ключевых и самых вкусных моментов является поддержка самых разных плагинов, упрощающих и всячески улучшающих существующий функционал. Подборка неплохих плагинов есть на Хабре в этом материале (хотя там написано, что лучших, но я бы не сказал, что все из них действительно лучшие).
Ну и, само собой, как по мне, так у программы довольно приятный и удобный интерфейс, что в общем-то уже давно является своеобразным стандартом и, в некотором роде, банальностью.
Скачать сию радость можно с сайта разработчика. Установка предельно проста и на ней я останавливаться не буду.
Что касается руссификации, то для Sublime Text 2 можно скачать руссификатор отсюда, а для Sublime Text 3 по этой ссылке. За сделанный перевод спасибо Dimox’у.
Установка предельно проста. Скопируйте файлы из архива (кроме папки Backup ) по одному из путей, в зависимости от Ваше операционной системы:
Windows XP : C:\Documents and Settings\Имя_пользователя\Application Data\Sublime Text 3\Packages\Default\ Windows 7/8 : C:\Users\Имя_пользователя\AppData\Roaming\Sublime Text 3\Packages\Default\ Linux :
Если папки Default нет, то создайте её. После копирования перезапустите программу. В папке Backup лежат оригиналы файлов, на случай, если что-то пойдет не так.
В двух словах как-то так, более говорить особо нечего, ибо программой надо, в первую очередь, воспользоваться, чтобы получить собственное впечатление и понять все необходимые нюансы о преимуществах сей радости программисткой жизни. На словах это рассказать сложно 🙂
Перейдем к послесловию.
Послесловие
Вот такие пироги. Понимаю, что здесь не очень-то много людей, которые работают с кодом, но даже тем, кто с сим никак не связан, программа может пригодится когда-нибудь, ну или.. Просто для работы с текстом.
На сим всё. Как и всегда, если есть какие-то вопросы, дополнения и всё такое прочее, то комментарии к Вашим услугам.
insert #tmp(f1, f2) select ‘AAAB’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBB’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBc’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBd’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBe’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBf’, ‘ASDFGFGHHJJJJK’ union all select ‘ABBg’, ‘ASDFGFGHHJJJJK’ go set showplan_text on go select * from #tmp where f1 like ‘AA%’
fallback_encoding in sublime-project settings ignored when sublime is started #189
Comments
trollfred commented Nov 22, 2013
seems like when sublime text starts and automatically opens files that were not closed on exit, it opens them before it overrides some settings from project file not that a big deal though
The text was updated successfully, but these errors were encountered:
MattDMo commented Nov 22, 2013
Can you please supply some more detail? What version of Sublime are you using on which platform? What specific settings are you referring to? A clear example would be very helpful in demonstrating the problem.
trollfred commented Nov 22, 2013
I have latest 3047 build and this is how I reproduce this creating project with configuration < «folders»: [ #. my folders ], «settings»: < «fallback_encoding»: «Cyrillic (KOI8-R)», > > which works fine when I open files while sublime is working, but if I quit sublime with some files (in KOI8-R) open and after that I start sublime (which automatically opens that files for me) that files are opened not in KOI8-R but in another fallback_encoding (cp1251) which is defined in default sublime settings (not per project) If after that I close file and reopen it, it opens fine in KOI8-R
MattDMo commented Nov 22, 2013
Have you tried playing around with the «default_encoding» settings any? What happens if you set «default_encoding»: «Cyrillic (KOI8-R)» in your project? What is the actual codepage of the file you are opening? If you’re a registered user, I’d recommend upgrading to Build 3056, the latest development release. I don’t know if this issue has been fixed in it, but one feature you may be interested in is that encoding (and line-ending type) is now displayed at the bottom of the status bar, along with syntax and tab settings, and can be clicked on to change.
This does potentially look like a bug, I’d just like to see if there’s a good workaround for you in the meantime.
trollfred commented Nov 22, 2013
trollfred commented Nov 22, 2013
I just found the same behavior when switching between projects and also this topic http://www.sublimetext.com/forum/viewtopic.php?f=3&p=24206
falsyvalues commented Feb 13, 2014
I just found the same behavior when switching between projects and also this topic http://www.sublimetext.com/forum/viewtopic.php?f=3&p=24206
I can confirm, bug is still present in v2.0.2 build 2221
FichteFoll commented Jul 2, 2016
I think this is the same issue as the now-fixed #815. Can anyone confirm?
wbond commented Jun 29, 2017
This should be fixed, so with no response I am going to close as fixed. If you are having issues with something using build 3139, please open a new issue.
В очередной раз запустив в Windows свой скрипт-информер для СамИздат-а и увидев в консоли «загадочные символы» я сказал себе: «Да уже сделай, наконец, себе нормальный кросс-платформенный логгинг!»
Об этом, и о том, как раскрасить вывод лога наподобие Django-вского в Win32 я попробую рассказать под хабра-катом (Всё ниженаписанное применимо к Python 2.x ветке)
Задача первая. Корректный вывод текста в консоль
Симптомы
До тех пор, пока мы не вносим каких-либо «поправок» в проинициализировавшуюся систему ввода-вывода и используем только оператор print с unicode строками, всё идёт более-менее нормально вне зависимости от ОС.
«Чудеса» начинаются дальше — если мы поменяли какие-либо кодировки (см. чуть дальше) или воспользовались модулем logging для вывода на экран. Вроде бы настроив ожидаемое поведение в Linux, в Windows получаешь «мусор» в utf-8. Начинаешь править под Win — вылезает 1251 в консоли…
Теоретический экскурс
Ищем решение
Очевидно, чтобы избавиться от всех этих проблем, надо как-то привести их к единообразию. И вот тут начинается самое интересное:
Кроме того, как замечательно видно из примера, если в linux у нас везде utf-8, то в Windows — две разных кодировки — так называемая ANSI, она же cp1251, используемая для графической части и OEM, она же cp866, для вывода текста в консоли. OEM кодировка пришла к нам со времён DOS-а и, теоретически, может быть также перенастроена специальными командами, но на практике никто этого давно не делает.
До недавнего времени я пользовался распространённым способом исправить эту неприятность:
… и собрать всё вместе:
Задача вторая. Раскрашиваем вывод
Попробовав несколько из них, я, в итоге, воспользовался простейшим наследником StreamHandler, приведённом в одном из комментов на Stack Overflow и пока вполне доволен:
Однако, в Windows всё это работать, разумеется, отказалось. И если раньше можно было «включить» поддержку ansi-кодов в консоли добавлением «магического» ansi.dll из проекта symfony куда-то в недра системных папок винды, то, начиная (кажется) с Windows 7 данная возможность окончательно «выпилена» из системы. Да и заставлять юзера копировать какую-то dll в системную папку тоже как-то «не кошерно».
Снова обращаемся к гуглу и, снова, получаем несколько вариантов решения. Все варианты так или иначе сводятся к подмене вывода ANSI escape-последовательностей вызовом WinAPI для управления атрибутами консоли.
Побродив некоторое время по ссылкам, набрёл на проект colorama. Он как-то понравился мне больше остального. К плюсам именно этого проекта ст́оит отнести, что подменяется весь консольный вывод — можно выводить раскрашенный текст простым print u»\x1b[31;40mЧто-то красное на чёрном\x1b[0m» если вдруг захочется поизвращаться.
Сразу замечу, что текущая версия 0.1.18 содержит досадный баг, ломающий вывод unicode строк. Но простейшее решение я привёл там же при создании issue.
Собственно осталось объединить оба пожелания и начать пользоваться вместо традиционных «костылей»:
Дальше в своём проекте, в запускаемом файле пользуемся:
На этом всё. Из потенциальных доработок осталось проверить работоспособность под win64 python и, возможно, добаботать ColoredHandler чтобы проверял себя на isatty, как в более сложных примерах на том же StackOverflow.