- Что делать, если место букв в Windows 10 иероглифы и кракозябры
- Как исправить кракозябры в Windows 10 через Панель управления
- Исправление проблемы через реестр
- Отдельные программы
- Знаки вопроса вместо русских букв, решение проблемы с кодировкой Windows
- Знаки вопроса вместо русских букв, кракозябры или неверная кодировка
- Обсуждение записи “Знаки вопроса вместо русских букв, кракозябры или неверная кодировка”
- Как исправить отображение кириллицы или кракозябры в Windows 10
- Исправление отображения кириллицы с помощью настроек языка и региональных стандартов Windows 10
- Как исправить иероглифы Windows 10 путем изменения кодовых страниц
- С помощью редактора реестра
- Путем подмена файла кодовой страницы на c_1251.nls
Что делать, если место букв в Windows 10 иероглифы и кракозябры
Всем вам хорошо знакома ситуация, когда в Windows 10 вместо букв отображаются иероглифы или кракозябры. Такое чаще всего случается с русским текстом, например внутри программы.
В новой операционной системе от Microsoft существует множество региональных параметров. Это позволяет всем пользователям работать с этой ОС на родном для них языке. Все эти возможности иногда вызывают проблему, при которой вместо русских букв в Windows 10 появляются различные иероглифы. Все это может говорить о том, что есть определённые трудности с отображением системных шрифтов. Именно поэтому пользователь и видит перед собой не обычный текст, а так называемые кракозябры. Часто вместо них появляются знаки вопроса или другие символы, прочесть значение которых просто невозможно.
Как исправить кракозябры в Windows 10 через Панель управления
Чтобы перейти в нужный раздел Панели управления, нужно нажать Win + К и ввести «control». Итак, на главной странице Панели перейдите в раздел изменения форматов времени и чисел. И далее:
- В открывшемся окне выберите «Регион» – «Дополнительно»;
- После этого «Изменить язык системы» из «Языка программ, не поддерживающих Юникод»;
- Уже в этом окне можно выбрать родной для вас язык.
После того как операционная система будет перезагружена, скорее всего и удастся исправить знаки вопроса и иероглифы, которые до этого появлялись вместо русских букв.
Если вы хотите управлять компьютером с помощью команд, то рекомендуем выучить основные команды, которые мы собрали на этой странице.
Исправление проблемы через реестр
Эти цифры являются кодовым обозначением для кириллической страницы. После подобных изменений и перезагрузки компьютера рассматриваемая нами проблема должна пропасть.
Учтите, что такой способ может помочь лишь в ограниченном количестве случаев, так как заточен именно под кодировку. Иногда проблема кроется намного глубже. Поэтому первым делом воспользуйтесь инструкцией из первого варианта, она более универсальна. Но начните с малого – обновите свою ОС. Ведь возможно, то ПО которое создает вам проблемы банально не поддерживается актуальной версией системы.
Отдельные программы
Нужно только напомнить, что перед использованием каждого из вышеописанных способов, желательно производить бэкап системы, который позволит вам сохранить все свои документы и просто важные файлы. И в этом случае вы убережете себя от случайных трудностей, которые могут возникнуть в процессе исправления ситуации, когда у вас на ПК на Windows 10 вместо русских букв отображаются иероглифы или кракозябры.
Знаки вопроса вместо русских букв, решение проблемы с кодировкой Windows
Заметил на одном компьютере что вместо русских букв в командной строке да и в некоторых программах отображаются знаки вопроса.
В первую очередь необходимо убедиться, что языком системы выбран русский язык, для этого в «Пуск» — «Панель управления» — «Часы, язык и регион» — «Язык и региональные стандарты«, вкладка «Дополнительно«, раздел «Язык программ, не поддерживающих Юникод» необходимо нажать «Изменить язык системы» и выбрать «Русский (Россия)» и нажать «ОК» во всех окнах.
Также для решения проблемы откроем редактор реестра набрав в командной строке «regedit.exe«.
Командную строку можно открыть нажав по ярлыку в меню «Пуск» — «Все программы» — «Страндартные» — «Коммандная строка» или набрав «cmd» в поисковой строке меню «Пуск«.
В редакторе реестра необходимо открыть ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
и изменить значения параметров 1250 (с c_1250.nls на c_1251.nls), 1251 (убедится что c_1251.nls), 1252 (с c_1252.nls на c_1251.nls).
Все, после перезагрузки компьютера русские буквы будут отображаться корректно.
Знаки вопроса вместо русских букв, кракозябры или неверная кодировка
Как это не странно, но во времена UNICODE все еще встречается проблема знаками вопроса или кракозябрами вместо кириллицы (русских букв).
Проблема наблюдается в программах с русскоязычным интерфейсом, которые написаны на Delphi 7, вместо русских букв показывают знаки вопроса. Перевод проекта под UNICODE-версию Дельфи (2010 или 2009) практически не возможен, так как в нем используются компоненты, которые не имеют новых UNICODE-совместимые версии (авторы больше не поддерживают компоненты).
Удивляет не то, что GUI программ не показывает русские буквы, а то, что вместо кракозябр показываются знаки вопроса. Кракозябры — это символы текущей кодировки, с теми же кодами, что у нужных нам русских букв. Знаки вопроса обычно появляются когда у системы не получается сопоставить используемый символ UNICODE (к примеру, русская буква из UNICODE) с символом теперешней кодировки.
ОС Windows 7, Windows Vista и Windows XP имеют настройку локалей. Она находиться по адресу: Панель Управления->Язык и национальные стандарты-> последняя вкладка «Дополнительно». Там можно указывать язык для программ, которые не поддерживают Юникод. По логике, после выбора, в этой вкладке, русского языка, программа должна правильно показывать русские буквы. Но на деле русские буквы отображаются только в компонентах ColorBox и в шапке программы. Во всех других компонентах интерфейса отображаются все те же знаки вопроса.
Странно, но проблему решит другая настройка: Панель Управления->Язык и национальные стандарты->Региональные параметры». Эта вкладка отвечает за формат денежных единиц, чисел, дат и времени. И вроде бы не имеет отношения к кодировкам. Но все-таки, если установить значение «Русский, Россия», то знаки вопроса исчезнут и интерфейс программы начнет показывать либо русские буквы, либо кракозябры, в зависимости от того, какая локаль указана на вкладке «Дополнительно».
Ниже приводятся результаты разных комбинаций этих двух настроек в ОС Windows, начиная с XP:
Формат: США
Локаль: США
Итог: Всюду знаки вопроса
Формат: США
Локаль: Россия
Итог: В шапке и колорбоксах русские символы, во всем другом знаки вопроса
Формат: Россия
Локаль: США
Итог: Везде «крякозябры»
Формат: Россия
Локаль: Россия
Результат: Все хорошо!
Также, если не помогает, можно советует делать следующее: сбросить поле Format в English (United Sates) и вернуть обратно в Russian (Russia), или еще цитата: «Мне помогла смена формата сначала на английский, потом выход из системы, вход в систему и установка формата в русский»
Ну и способ с редактированием реестра (именно он в последнее время чаще всего выручает):
Запускайте REGEDIT и редактируйте на:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
“1250″=”c_1251.nls”
“1252″=”c_1251.nls”
Обсуждение записи “Знаки вопроса вместо русских букв, кракозябры или неверная кодировка”
Огромное спасибо! Выручили)))
Отлично! Нужно было переделать другу какой-то проэкт в Delphi 7 —
Формат: Россия
Локаль: Россия
Результат: Все хорошо!
Большое спасибо! в настройках везде стояло Русский, но шрифты в программе были в вопросиках. В региональных настройках выставил Татарский(русский)И шрифты появились. Вернул на обычный русский и все ровно все ок!
на сайте по всюду знаки вопроса, как в исходном коде декодировать на кириллицу? manuals4you.narod.ru/
Евгений, судя по тому, что код символов у этих знаков вопросов одинаков — уже никак. Если вдруг найдете методы, то поделитесь, пожалуйста =)
Все получилось. Но, буквально через 5 минут опять вопросы. Что это может быть? А получилось после того как поменяла на английский и обратно. Через реестр вообще ничего не произошло. Это происходит на одном сайте. Подскажите, что можно еще сделать.
1)работаю delphi 7. Dbexpress (sqlconnect и sqlquery). установил sqlite драйвер для работы с базой данных.
2)при обращении в БД запросом, вместо русского текста возвращает знаки вопроса. При записи в БД через delphi русского текста, он сохраняется кракозябрами в бд, но считывается нормально обратно.
3) ни один из способов не помог.
помогло преобразование типов в самом запросе! cast (name as blob) name (был text, стал blob). Удобно, но пока есть проблемы со случаями наличия в русском тесте чисел (русские буквы пропадают).
реальное огромное спасибо за помощь. сам врядли мы дошел до этого.
Только «странным» методом и удалось заставить показывать текст программу с сайта gosuslugi.ru, программисты с которого в 2016 году почему-то выкладывают для общего обязательного пользования программы, написанные на кривом Дельфи.
проблема известная, сам я её решал таким образом:
внутри System::initialization(void) есть вызов GetThreadLocale
перед этим проверяют версию системы (полученную от GetVersion)
и там ставят кодовую страницу 3, которую надо заменить на 0
(предполагаю что это CP_THREAD_ACP которое заменяется на CP_ACP)
в результате программа начинает работать правильно выводя все строки
ещё иногда приходится заменять в ресурсах DEFAULT_CHARSET на RUSSIAN_CHARSET
обратите внимание на «CODE:0040653C», вот это оно и есть.
CODE:004064A0 ; _DWORD __cdecl System::initialization()
CODE:004064A0 __fastcall System::initialization(void) proc near
CODE:004064A0 sub ds:dword_4945B8, 1
CODE:004064A7 jnb locret_406572
CODE:004064AD mov ds:byte_492008, 2
CODE:004064B4 mov ds:dword_494014, offset loc_40122C
CODE:004064BE mov ds:dword_494018, offset loc_40123C
CODE:004064C8 mov ds:byte_49404A, 2
CODE:004064CF mov ds:dword_494000, offset loc_4053EC
CODE:004064D9 call unknown_libname_51 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:004064DE test al, al
CODE:004064E0 jz short loc_4064E7
CODE:004064E2 call unknown_libname_52 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:004064E7
CODE:004064E7 loc_4064E7: ; CODE XREF: System::initialization(void)+40j
CODE:004064E7 call unknown_libname_53 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:004064EC mov ds:word_494050, 0D7B0h
CODE:004064F5 mov ds:word_49421C, 0D7B0h
CODE:004064FE mov ds:word_4943E8, 0D7B0h
CODE:00406507 call GetCommandLineA
CODE:0040650C mov ds:dword_49403C, eax
CODE:00406511 call unknown_libname_12 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:00406516 mov ds:dword_494038, eax
CODE:0040651B call GetVersion
CODE:00406520 and eax, 80000000h
CODE:00406525 cmp eax, 80000000h
CODE:0040652A jz short loc_406559
CODE:0040652C call GetVersion
CODE:00406531 and eax, 0FFh
CODE:00406536 cmp ax, 4
CODE:0040653A jbe short loc_406548
CODE:0040653C mov ds:CodePage, 3 ; 0
CODE:00406546 jmp short loc_406568
CODE:00406548 ; —————————————————————————
CODE:00406548
CODE:00406548 loc_406548: ; CODE XREF: System::initialization(void)+9Aj
CODE:00406548 call GetThreadLocale
CODE:0040654D call unknown_libname_100 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:00406552 mov ds:CodePage, eax
CODE:00406557 jmp short loc_406568
CODE:00406559 ; —————————————————————————
CODE:00406559
CODE:00406559 loc_406559: ; CODE XREF: System::initialization(void)+8Aj
CODE:00406559 call GetThreadLocale
CODE:0040655E call unknown_libname_100 ; BDS 2005-2007 and Delphi6-7 Visual Component Library
CODE:00406563 mov ds:CodePage, eax
CODE:00406568
CODE:00406568 loc_406568: ; CODE XREF: System::initialization(void)+A6j
CODE:00406568 ; System::initialization(void)+B7j
CODE:00406568 call GetCurrentThreadId
CODE:0040656D mov ds:dword_494030, eax
CODE:00406572
CODE:00406572 locret_406572: ; CODE XREF: System::initialization(void)+7j
CODE:00406572 retn
CODE:00406572 __fastcall System::initialization(void) endp
CODE:00406572
CODE:00406572 ; —————————————————————————
CODE:00406573 align 4
CODE:00406574 ; [00000006 BYTES: COLLAPSED FUNCTION GetModuleHandleA_0]
CODE:0040657A align 4
CODE:0040657C ; [00000006 BYTES: COLLAPSED FUNCTION LocalAlloc_0]
CODE:00406582 align 4
CODE:00406584 ; [00000006 BYTES: COLLAPSED FUNCTION TlsGetValue]
CODE:0040658A align 4
CODE:0040658C ; [00000006 BYTES: COLLAPSED FUNCTION TlsSetValue]
CODE:00406592 align 4
На всякий случай вот это же место с сигнатурами (чтобы можно было попасть поиском сразу куда надо и пропатчить, место .0040653C уже изменено с 3 на 0):
.0040651B: E834AEFFFF call GetVersion — 8
.00406520: 2500000080 and eax,080000000 ;’ ‘
.00406525: 3D00000080 cmp eax,080000000 ;’ ‘
.0040652A: 742D jz .000406559 — 9
.0040652C: E823AEFFFF call GetVersion — 8
.00406531: 25FF000000 and eax,0000000FF ;’ ‘
.00406536: 6683F804 cmp ax,4
.0040653A: 760C jbe .000406548 — A
.0040653C: C705BC45490000000000 mov d,[0004945BC],0 ; was 3
.00406546: EB20 jmps .000406568 — B
.00406548: E87FADFFFF Acall GetThreadLocale — C
.0040654D: E886FEFFFF call .0004063D8 — D
.00406552: A3BC454900 mov [0004945BC],eax
.00406557: EB0F jmps .000406568 — B
.00406559: E86EADFFFF 9call GetThreadLocale — C
.0040655E: E875FEFFFF call .0004063D8 — D
.00406563: A3BC454900 mov [0004945BC],eax
.00406568: E8DFADFFFF Bcall GetCurrentThreadId — E
.0040656D: A330404900 mov [000494030],eax
.00406572: C3 retn ; -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
Невероятнейшее преогромнейшее благодарю автору!
А проблема эта, просто невероятнейший дебилизм, не знаю чей…
Как исправить отображение кириллицы или кракозябры в Windows 10
Одна из возможных проблем, с которыми можно столкнуться после установки Windows 10 — кракозябры вместо русских букв в интерфейсе программ, а также в документах. Чаще неправильное отображение кириллицы встречается в изначально англоязычных и не совсем лицензионных версиях системы, но бывают и исключения.
В этой инструкции — о том, как исправить «кракозябры» (или иероглифы), а точнее — отображение кириллицы в Windows 10 несколькими способами. Возможно, также будет полезным: Как установить и включить русский язык интерфейса в Windows 10 (для систем на английском и других языках).
Исправление отображения кириллицы с помощью настроек языка и региональных стандартов Windows 10
Самый простой и чаще всего работающий способ убрать кракозябры и вернуть русские буквы в Windows 10 — исправить некоторые неправильные настройки в параметрах системы.
Для этого потребуется выполнить следующие шаги (примечание: привожу также названия нужных пунктов на английском, так как иногда необходимость исправить кириллицу возникает в англоязычных версиях системы без нужды менять язык интерфейса).
- Откройте панель управления (для этого можно начать набирать «Панель управления» или «Control Panel» в поиске на панели задач.
- Убедитесь, что в поле «Просмотр» (View by) установлено «Значки» (Icons) и выберите пункт «Региональные стандарты» (Region).
- На вкладке «Дополнительно» (Administrative) в разделе «Язык программ, не поддерживающих Юникод» (Language for non-Unicode programs) нажмите по кнопке «Изменить язык системы» (Change system locale).
- Выберите русский язык, нажмите «Ок» и подтвердите перезагрузку компьютера.
После перезагрузки проверьте, была ли решена проблема с отображением русских букв в интерфейсе программ и (или) документах — обычно, кракозябры бывают исправлены после этих простых действий.
Как исправить иероглифы Windows 10 путем изменения кодовых страниц
Кодовые страницы представляют собой таблицы, в которых определенным байтам сопоставляются определенные символы, а отображение кириллицы в виде иероглифов в Windows 10 связано обычно с тем, что по умолчанию задана не та кодовая страница и это можно исправить несколькими способами, которые могут быть полезны, когда требуется не изменять язык системы в параметрах.
С помощью редактора реестра
Первый способ — использовать редактор реестра. На мой взгляд, это самый щадящий для системы метод, тем не менее, рекомендую создать точку восстановления прежде чем начинать. Совет про точки восстановления относится и ко всем последующим способам в этом руководстве.
- Нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter, откроется редактор реестра.
- Перейдите к разделу реестраи в правой части пролистайте значения этого раздела до конца.
- Дважды нажмите по параметру ACP, установите значение 1251 (кодовая страница для кириллицы), нажмите Ок и закройте редактор реестра.
- Перезагрузите компьютер (именно перезагрузка, а не завершение работы и включение, в Windows 10 это может иметь значение).
Обычно, это исправляет проблему с отображением русских букв. Вариация способа с помощью редактора реестра (но менее предпочтительная) — посмотреть на текущее значение параметра ACP (обычно — 1252 для изначально англоязычных систем), затем в том же разделе реестра найти параметр с именем 1252 и изменить его значение с c_1252.nls на c_1251.nls.
Путем подмена файла кодовой страницы на c_1251.nls
Второй, не рекомендуемый мной способ, но иногда выбираемый теми, кто считает, что правка реестра — это слишком сложно или опасно: подмена файла кодовой страницы в C:\ Windows\ System32 (предполагается, что у вас установлена западно-европейская кодовая страница — 1252, обычно это так. Посмотреть текущую кодовую страницу можно в параметре ACP в реестре, как было описано в предыдущем способе).
- Зайдите в папку C:\ Windows\ System32 и найдите файл c_1252.NLS, нажмите по нему правой кнопкой мыши, выберите пункт «Свойства» и откройте вкладку «Безопасность». На ней нажмите кнопку «Дополнительно».
- В поле «Владелец» нажмите «Изменить».
- В поле «Введите имена выбираемых объектов» укажите ваше имя пользователя (с правами администратора). Если в Windows 10 используется учетная запись Майкрософт, вместо имени пользователя укажите адрес электронной почты. Нажмите «Ок» в окне, где указывали пользователя и в следующем (Дополнительные параметры безопасности) окне.
- Вы снова окажетесь на вкладке «Безопасность» в свойствах файла. Нажмите кнопку «Изменить».
- Выберите пункт «Администраторы» (Administrators) и включите полный доступ для них. Нажмите «Ок» и подтвердите изменение разрешений. Нажмите «Ок» в окне свойств файла.
- Переименуйте файл c_1252.NLS (например, измените расширение на .bak, чтобы не потерять этот файл).
- Удерживая клавишу Ctrl, перетащите находящийся там же в C:\Windows\System32 файл c_1251.NLS (кодовая страница для кириллицы) в другое место этого же окна проводника, чтобы создать копию файла.
- Переименуйте копию файла c_1251.NLS в c_1252.NLS.
- Перезагрузите компьютер.
После перезагрузки Windows 10 кириллица должна будет отображаться не в виде иероглифов, а как обычные русские буквы.