Как добавить unicode в windows

Обновлено: 08.07.2024

Консольные приложения до сих пор остаются наиболее востребованным видом приложений, большинство разработчиков оттачивают архитектуру и бизнес-логику именно в консоли. При этом они нередко сталкиваются с проблемой локализации - русский текст, который вполне адекватно отражается в исходном файле, при выводе на консоль приобретает вид т.н. "кракозябр".

В целом, локализация консоли Windows при наличии соответствующего языкового пакета не представляется сложной. Тем не менее, полное и однозначное решение этой проблемы, в сущности, до сих пор не найдено. Причина этого, главным образом, кроется в самой природе консоли, которая, являясь компонентом системы, реализованным статическим классом System.Console, предоставляет свои методы приложению через системные программы-оболочки, такие как командная строка или командный процессор (cmd.exe), PowerShell, Terminal и другие.
По сути, консоль находится под двойным управлением - приложения и оболочки, что является потенциально конфликтной ситуацией, в первую очередь в части использования кодировок.

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

Виды консолей

В общем случае функции консоли таковы:

управление операционной системой и системным окружением приложений на основе применения стандартных системных устройств ввода-вывода (экран и клавиатура), использования команд операционной системы и/или собственно консоли;

запуск приложений и обеспечение их доступа к стандартным потокам ввода-вывода системы, также с помощью стандартных системных устройств ввода-вывода.

Отдельным видом консоли можно считать консоль отладки Visual Studio (CMD-D ).

Конфликт кодировок

Полностью локализованная консоль в идеале должна поддерживать все мыслимые и немыслимые кодировки приложений, включая свои собственные команды и команды Windows, меняя "на лету" кодовые страницы потоков ввода и вывода. Задача нетривиальная, а иногда и невозможная - кодовые страницы DOS (CP437, CP866) плохо совмещаются с кодовыми страницами Windows и Unicode.

Совет 1. Выполнять разработку текстовых файлов (программных кодов, текстовых данных и др.) исключительно в кодировке UTF-8. Мир любит Юникод, а кроссплатформенность без него вообще невозможна.

Совет 2. Периодически проверять кодировку, например в текстовом редакторе Notepad++. Visual Studio может сбивать кодировку, особенно при редактировании за пределами VS.

Поскольку в консоли постоянно происходит передача управления от приложений к собственно командному процессору и обратно, регулярно возникает "конфликт кодировок", наглядно иллюстрируемый таблица 1 и 2, сформированных следующим образом:

Команды и код приложения под катом

> Echo ffffff фффффф // в командной строке

PS> Echo ffffff фффффф // в PowerShell

PS> Echo ffffff . // так выглядит та же команда в Windows PowerShell

код тестового приложения:

Командную часть задания все консоли локализовали практически без сбоев во всех кодировках, за исключением: в WPS неверно отображена русскоязычная часть команды во всех кодировках.

Табл. 1. Результат выполнения команды консоли Echo ffffff фффффф

Табл. 1. Результат выполнения команды консоли Echo ffffff фффффф

Вывод тестового приложения локализован лишь в 50% испытаний, как показано в табл.2.

Табл. 2. Результат запуска приложения LoggingConsole.Test

Табл. 2. Результат запуска приложения LoggingConsole.Test

Сoвет 3. Про PowerShell забываем раз и навсегда. Ну может не навсегда, а до следующей мажорной версии.

По умолчанию Windows устанавливает для консоли кодовые страницы DOS. Чаще всего CP437, иногда CP866. Актуальные версии командной строки cmd.exe способны локализовать приложения на основе русифицированной кодовой страницы 866, но не 437, отсюда и изначальный конфликт кодировок консоли и приложения. Поэтому

Совет 4. Перед запуском приложения необходимо проверить кодовую страницу консоли командой CHCP и ей же изменить кодировку на совместимую - 866, 1251, 65001.

Проблемы консолей Visual Studio

В Visual Studio имеется возможность подключения консолей, по умолчанию подключены командная строка для разработчика и Windows PowerShell для разработчика. К достоинствам можно отнести возможности определения собственных параметров консоли, отдельных от общесистемных, а также запуск консоли непосредственно в директории разработки. В остальном - это обычные стандартные консоли Windows, включая, как показано ранее, установленную кодовую страницу по умолчанию.

Отдельной опцией Visual Studio является встроенная односеансная консоль отладки, которая перехватывает команду Visual Studio на запуск приложения, запускается сама, ожидает компиляцию приложения, запускает его и отдает ему управление. Таким образом, отладочная консоль в течение всего рабочего сеанса находится под управлением приложения и возможность использования команд Windows или самой консоли, включая команду CHCP, не предусмотрена. Более того, отладочная консоль не воспринимает кодовую страницу по умолчанию, определенную в реестре, и всегда запускается в кодировке 437 или 866.

Совет 6. Тестирование приложения целесообразно выполнять во внешних консолях, более дружелюбных к локализации.

Анализ проблем консолей был бы не полон без ответа на вопрос - можно ли запустить консольное приложение без консоли? Можно - любой файл ".exe" запустится двойным кликом, и даже откроется окно приложения. Однако консольное приложение, по крайней мере однопоточное, по двойному клику запустится, но консольный режим не поддержит - все консольные вводы-выводы будут проигнорированы, и приложение завершится

Локализация отладочной консоли Visual Studio

Отладочная консоль - наиболее востребованная консоль разработчика, гораздо более удобная, чем внешняя консоль, поэтому резонно приложить максимум усилий для ее локализации.

На самом деле, правильнее говорить о локализации приложения в консоли - это важное уточнение. Microsoft по этому поводу высказывается недвусмысленно: "Programs that you start after you assign a new code page use the new code page. However, programs (except Cmd.exe) that you started before assigning the new code page will continue to use the original code page". Иными словами, консоль можно локализовать когда угодно и как угодно, но приложение будет локализовано в момент стабилизации взаимодействия с консолью в соответствии с текущей локализацией консоли, и эта локализация сохранится до завершения работы приложения. В связи с этим возникает вопрос - в какой момент окончательно устанавливается связь консоли и приложения?

Важно! Приложение окончательно стабилизирует взаимодействие с консолью в момент начала ввода-вывода в консоль, благодаря чему и появляется возможность программного управления локализацией приложения в консоли - до первого оператора ввода-вывода.

Ниже приведен пример вывода тестового приложения в консоль, иллюстрирующий изложенное. Метод Write получает номера текущих страниц, устанавливает новые кодовые страницы вводного и выводного потоков, выполняет чтение с консоли и записывает выводную строку, содержащий русский текст, в том числе считанный с консоли, обратно в консоль. Операция повторяется несколько раз для всех основных кодовых страниц, упомянутых ранее.

приложение запущено в консоли с кодовыми страницами 1251 (строка 2);

приложение меняет кодовые страницы консоли (current, setted);

приложение остановлено в консоли с кодовыми страницами 1252 (строка 11, setted);

по окончании работы приложения изменения консоли сохраняются (строка 14 - Active codepage 1252);

Приложение адекватно локализовано только в случае совпадения текущих кодовых страниц консоли (setted 1251:1251) с начальными кодовыми страницами (строки 8 и 10).

Совет 7. Обязательный и повторный! Функции SetConsoleCP должны размещаться в коде до первого оператора ввода-вывода в консоль.

Стратегия локализации приложения в консоли

Удалить приложение PowerShell (если установлено), сохранив Windows PowerShell;

Установить в качестве кодовую страницу консоли по умолчанию CP65001 (utf-8 Unicode) или CP1251 (Windows-1251-Cyr), см. совет 5;

Разработку приложений выполнять в кодировке utf-8 Unicode;

Контролировать кодировку файлов исходных кодов, текстовых файлов данных, например с помощью Notepad++;

Реализовать программное управление локализацией приложения в консоли, пример ниже под катом:

В Windows 10 есть много различных языковых и региональных параметров, которые пользователь может настраивать соответственно своим предпочтениям. Часто бывает так, что владельцы компьютеров сталкиваются с некорректным отображением кириллических (русский, украинский и другие языки) шрифтов. Вместо нормальных знаков и русских букв почему-то отображаются крякозябры в Windows 10, делающие работу с операционной системой фактически невозможной. При этом сам язык системы может отображаться нормально, но попытка открыть текстовый файл или запустить приложение, в котором используется кириллический текст, приведет к весьма унылому результату:

1

Причиной этому является сбой кодировки операционной системы. Чинится все предельно просто и потребует от вас лишь несколько кликов и одну перезагрузку компьютера. При этом починка осуществляется как простым способом через Панель управления, так и более сложным через редактор реестра или подмену кодовых таблиц операционной системы. Мы рекомендуем использовать первый метод, так как в 99.99% случае проблема решается именно так.

После запуска компьютера текст должен отображаться как положено.

К вашему сведению: редактирование реестра всегда связано с определенными рисками навредить операционной системе. Внимательно следите за путями изменяемых ключей, делайте резервное копирование и проверяйте все дважды. Если вы не уверены, что сможете восстановить все обратно в случае поломки, лучше воздержите себя от редактирования реестра. Для перестраховки создайте резервную точку восстановления Windows 10.

После этого Windows 10 перестанет отображать иероглифы вместо текста.

Способ далеко не самый удобный, но тоже имеющий право на свое существование. В конце концов, вы сами решаете, каким образом чинить неполадки своего компьютера.

Обратите внимание: в этой инструкции показана подмена кодовой страницы 1252, которая отвечает за западноевропейскую кодировку. Если в системе используется другая кодовая страница, вам понадобится узнать ее номер. На случай, если вы не сможете это сделать, воспользуйтесь методами изменения кодировки Windows 10, которые описаны выше.

Появились кракозябры вместо русских букв в Windows 10

В большинстве случаев проблемы с отображением кириллицы во всей операционной системе Windows 10 или в отдельных программах появляются сразу после ее установки на компьютер. Связана неполадка с неправильно заданными параметрами либо с некорректной работой кодовой страницы. Давайте приступим к рассмотрению двух действенных методов для исправления возникшей ситуации.

Исправляем отображение русских букв в Windows 10

Существует два способа решения рассматриваемой проблемы. Связаны они с редактированием настроек системы или определенных файлов. Они отличаются по сложности и эффективности, поэтому мы начнем с легкого. Если первый вариант не принесет никакого результата, переходите ко второму и внимательно следуйте описанным там инструкциям.

Способ 1: Изменение языка системы

В первую очередь хотелось бы отметить такую настройку как «Региональные стандарты». В зависимости от его состояния и производится дальнейшее отображение текста во многих системных и сторонних программах. Редактировать его под русский язык можно следующим образом:

  1. Откройте меню «Пуск» и в строке поиска напечатайте «Панель управления». Кликните на отобразившийся результат, чтобы перейти к этому приложению.

Открыть меню приложения Панель Управления через Пуск в Windows 10

Перейти к настройке региональных стандартов в Windows 10

Открыть дополнительные настройки региональных стандартов в Windows 10

Изменить текущий язык системы Windows 10

Перезагрузить компьютер после изменений Windows 10

Способ 2: Редактирование кодовой страницы

Перед выполнением этого метода настоятельно рекомендуем создать точку восстановления, она поможет вернуть конфигурацию до внесения ваших изменений, если после них что-то пойдет не так. Детальное руководство по данной теме вы найдете в другом нашем материале по ссылке ниже.

  1. Нажатием на комбинацию клавиш Win + R запустите приложение «Выполнить», в строке напечатайте regedit и кликните на «ОК».
  2. В окне редактирования реестра находится множество директорий и параметров. Все они структурированы, а необходимая вам папка расположена по следующему пути:

Найти строковый параметр в редакторе реестра Windows 10

Редактировать параметр ACP в реестре Windows 10

Если же значение и так уже является 1251, следует провести немного другие действия:

Найти 1252 в редакторе реестра Windows 10

Изменить значение 1252 в редакторе реестра Windows 10

После завершения работы с редактором реестра обязательно перезагрузите ПК, чтобы все корректировки вступили в силу.

Подмена кодовой страницы

    Откройте «Этот компьютер» и перейдите по пути C:\Windows\System32 , отыщите в папке файл С_1252.NLS, кликните на нем правой кнопкой мыши и выберите «Свойства».

Открыть свойства файла 1252 в Windows 10

Перейти к дополнительным настройкам безопасности файлы 1252 в Windows 10

Изменить владельца файла в Windows 10

Указать владельца файла Windows 10

Перейти к редактированию доступа к файлу в Windows 10

Предоставить полный доступ файлу в Windows 10

Копирование файла 1251 в операционной системе Windows 10

Переименование копии файла 1251 Windows 10

Вот таким нехитрым образом происходит подмена кодовых страниц. Осталось только перезапустить ПК и убедиться в том, что метод оказался эффективным.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.


Компьютеры с Windows 10 поставляются со специальной панелью эмодзи. Вы можете быстро открыть эту панель смайликов с помощью сочетания клавиш «Win Logo + Dot» и вставить свои любимые смайлы в любое приложение. Однако, помимо смайликов, есть тысячи других символов, которые могут быть очень полезны. Например, вы когда-нибудь задумывались, как Чтобы ввести в документы символ бесконечности или пи? В этой статье мы объясним, как вставить практически любой символ на ПК с Windows с помощью приложения Character Map.

Отображение символов Юникода

Unicode – это некоммерческая организация, которая помогает определять стандарты для каждого символа, который вы можете вводить с клавиатуры. Сюда входят буквы разных языков, специальные символы и эмодзи. Для каждого символа, представленного в формате кода U +, существует уникальный шестнадцатеричный код. Например, точка Unicode для восклицательного знака – U + 0021 (!), А символ градуса Цельсия – U + 2103 (℃). Операционные системы, такие как Windows, будут интерпретировать эти кодовые точки с использованием кодировки символов UTF-8 или UTF-16 и отображать их как символ в приложениях. Формат преобразования Unicode или UTF – самая популярная и универсальная кодировка символов, которая помогает стандартизировать отображение символов в любом приложении.

Кодовая точка ЮникодаНазвание символаUTF-8Отображать
U+0021Восклицательный знак21!
U+2103Градус ЦельсияE2 84 83

Альтернативный код против карты символов

Поскольку стандартные клавиатуры не позволяют вводить шестнадцатеричное значение Unicode, вам необходимо сначала преобразовать шестнадцатеричное значение в десятичное и использовать его с одной из клавиш alt. Однако это будет работать только при вводе десятичного значения с цифровой клавиатуры. Кроме того, альтернативный код не будет работать во всех приложениях или вести себя по-разному, если приложение использует другой метод кодировки символов. Чтобы решить эту проблему, Windows предлагает приложение «Карта символов». Это приложение поможет вам найти ваш любимый символ и позволит вам выполнять поиск по значению Unicode или по описанию, чтобы упростить задачу.

Как открыть приложение «Карта персонажей»?

Как уже упоминалось, карта символов – это независимое приложение, используемое для вставки символов на компьютере с Windows. Вы можете получить доступ к приложению одним из следующих способов.

Открыть из Windows или Cortana Search

  • Нажмите клавишу Windows на клавиатуре, чтобы выделить поле поиска, или щелкните поле поиска на панели задач.
  • Введите charmap и щелкните ссылку «Открыть», выбрав первый вариант для доступа к приложению «Карта символов».

Как использовать карту символов в Windows?

Открыть карту персонажей

Открыть из запроса запуска

  • Нажмите клавиши «Win Logo + R», чтобы открыть окно «Выполнить».
  • Введите charmap и нажмите клавишу ввода.

Как использовать карту символов в Windows?

Открыть карту символов в Windows

Доступ из командной строки или PowerShell

Если вы работаете с командной строкой, откройте ее, выполнив поиск в окне поиска Windows.

Как использовать карту символов в Windows?

Открыть командную строку

Введите charmap в командной строке и нажмите клавишу ввода, чтобы открыть приложение «Карта символов» в отдельном окне.

Как использовать карту символов в Windows?

Откройте карту символов из командной строки

Если вы используете Windows PowerShell вместо командной строки, нажмите клавиши «Win + X», чтобы открыть меню питания.

Как использовать карту символов в Windows?

Откройте Windows PowerShell.

Щелкните параметр Windows PowerShell, чтобы открыть приложение. Как и в командной строке, введите charmap и нажмите клавишу ВВОД, чтобы открыть приложение «Карта символов».

Как использовать карту символов в Windows?

Открыть диаграмму из PowerShell

Отображение карты символов

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

Как использовать карту символов в Windows?

Вы можете установить флажок «Расширенный вид», чтобы увидеть приложение с дополнительными параметрами. Мы рекомендуем использовать приложение с расширенным представлением, так как оно поможет вам легко находить символы.

Как использовать карту символов в Windows?

Расширенный вид приложения "Карта персонажей"

Использование программы просмотра символов для вставки символов

Вот варианты, которые вы можете найти в приложении.

  • Шрифт – щелкните раскрывающийся список, чтобы выбрать свой любимый шрифт из списка. Помните, что это важный выбор, поскольку доступный список символов может широко варьироваться в зависимости от выбранного вами шрифта. Кроме того, в таких шрифтах, как Wingdings и Webdings, есть специальные символы, которые можно просматривать только с этими шрифтами. При изменении шрифта отображение станет несовместимым, а символ отобразится в виде квадратной рамки.
  • Справка – нажмите на нее, найдите в Интернете страницу справки.
  • Символы и символы – прокрутите список и найдите доступный символ. Щелкните по нему, чтобы выделить выбранный символ.
  • Выбрать и скопировать – вы можете дважды щелкнуть любой символ, чтобы выбрать его первым. Или нажмите кнопку выбора, чтобы отобразить символ в текстовом поле «Символы для копирования:». После этого нажмите кнопку «Копировать», чтобы скопировать символ в буфер обмена.

Как использовать карту символов в Windows?

Выбрать и скопировать символ

Теперь, когда вы скопировали символ в буфер обмена, используйте сочетания клавиш «Control + V», чтобы вставить в любое место ваших документов.

Получение кода и ярлыков

После выбора символа карта символов покажет различные детали, которые вы можете использовать для разных целей.

  • Кодовая точка Unicode с официальным именем символа. Вы также можете просмотреть это в нижней строке состояния, наведя курсор на символ после его выбора.
  • Найдите сочетания клавиш с альтернативным кодом в правом нижнем углу как значение «Нажатие клавиши». Если вам нужно часто вставлять символ, запишите значение нажатия клавиши и используйте его с альтернативным кодом вместо того, чтобы каждый раз открывать карту символов.

Как использовать карту символов в Windows?

Просмотреть кодовую точку

Группа расширенных параметров Unicode

Найти символ в базовом представлении сложно, поскольку вы не видите категорий. Наилучший вариант – использовать расширенный вид и использовать параметры Unicode.

  • Сначала нажмите «Набор символов» и выберите вариант «Юникод» из раскрывающегося списка.
  • Щелкните «Группировать по» и выберите «Поддиапазон Unicode». Эта опция будет доступна только для стандартных шрифтов, таких как Arial.

Как использовать карту символов в Windows?

Группировать по параметрам

  • Откроется новое всплывающее окно, в котором вы можете выбрать группу символов.

Как использовать карту символов в Windows?

Группировать по всплывающему окну

Поиск символов

Вы можете найти и вставить любой символ Юникода из всплывающего окна поддиапазона.

  • Например, выберите «Буквенные символы», чтобы отфильтровать символы из главного окна приложения. Выберите любую букву, подобную символу, которую вы хотите вставить в свои документы.

Как использовать карту символов в Windows?

Фильтровать буквы как символы

  • Кроме того, вы можете ввести имя символа в поле «Искать:» и нажать кнопку «Поиск», чтобы отфильтровать результат. Это наиболее удобный способ получить символы по имени.

Как использовать карту символов в Windows?

  • Если вы узнали значение Unicode для любого символа, введите его в поле поиска «Перейти к Unicode». Нажмите клавишу ввода, чтобы найти соответствующий символ для введенного значения Unicode.

Как использовать карту символов в Windows?

Поиск в кодовой точке Unicode

Средство просмотра персонажей против карты персонажей

Подобно Windows, Mac от Apple также поставляется с приложением по умолчанию для вставки символов. Это приложение называется Character Viewer и предлагает дополнительные возможности по сравнению с Character Map. Он сочетает в себе панель смайликов и карту символов в Windows, чтобы сделать его одноточечным приложением для вставки любых смайликов или символов. Кроме того, вы можете найти сотни вариантов шрифта для каждого символа, которые вы можете выбрать для отображения индивидуального внешнего вида символа в ваших документах.

Читайте также: