Знаки вопроса вместо русских букв андроид

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

Простой 1 комментарий

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

Суть в том, что в виндовой консоли может быть 2 русские кодировки (cp866 и cp1251) (не уверен, но может быть консоль винды научилась уже нормально работать с UTF8, если научилась, то считайте, что добавилась еще одна кодировка). Причем по умолчанию используется cp866. Кодировку консоли можно менять из самой консоли или программно.
При выводе текста в консоль никаких преобразований кодировок не происходит. В какой кодировке у вас написаны исходники — та и выводится. И если кодировка консоли и кодировка исходников не совпадают, то будет не читабельный текст.

Самый оптимальный и самый сложный вариант — в программе узнать кодировку консоли и перед выводом конвертировать текст в эту кодировку. Так же обратную операцию производить при вводе. В этом случае исходники программы лучше всего писать в UTF8 и использовать wchar_t.

Самый простой, дебильный и не всегда работающий (не будет работать если изменена кодировка консоли) — писать исходники в cp866.
Немного чуть более сложный, но не правильный — поменять кодировку консоли из программы на ту в которой написаны исходники.

Самый надежный вариант — не используйте русский в консольных программах — только английский. Сомневаюсь, что вам придется когда-то писать профессиональные консольные утилиты, которые бы умели адаптироваться к разным кодировкам, так что, возможно, нет смысла углубляться в эту тему. В GUI приложениях этой проблемы нет.

Читайте также:  Говорить с котом для android

Источник

Знаки вопроса вместо русских букв, решение проблемы с кодировкой Windows

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

В первую очередь необходимо убедиться, что языком системы выбран русский язык, для этого в «Пуск» — «Панель управления» — «Часы, язык и регион» — «Язык и региональные стандарты«, вкладка «Дополнительно«, раздел «Язык программ, не поддерживающих Юникод» необходимо нажать «Изменить язык системы» и выбрать «Русский (Россия)» и нажать «ОК» во всех окнах.

Также для решения проблемы откроем редактор реестра набрав в командной строке «regedit.exe«.
Командную строку можно открыть нажав по ярлыку в меню «Пуск» — «Все программы» — «Страндартные» — «Коммандная строка» или набрав «cmd» в поисковой строке меню «Пуск«.

В редакторе реестра необходимо открыть ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
и изменить значения параметров 1250c_1250.nls на c_1251.nls), 1251 (убедится что c_1251.nls), 1252c_1252.nls на c_1251.nls).

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

Источник

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

Простой 1 комментарий

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

Суть в том, что в виндовой консоли может быть 2 русские кодировки (cp866 и cp1251) (не уверен, но может быть консоль винды научилась уже нормально работать с UTF8, если научилась, то считайте, что добавилась еще одна кодировка). Причем по умолчанию используется cp866. Кодировку консоли можно менять из самой консоли или программно.
При выводе текста в консоль никаких преобразований кодировок не происходит. В какой кодировке у вас написаны исходники — та и выводится. И если кодировка консоли и кодировка исходников не совпадают, то будет не читабельный текст.

Читайте также:  Софт для восстановления данных с андроид

Самый оптимальный и самый сложный вариант — в программе узнать кодировку консоли и перед выводом конвертировать текст в эту кодировку. Так же обратную операцию производить при вводе. В этом случае исходники программы лучше всего писать в UTF8 и использовать wchar_t.

Самый простой, дебильный и не всегда работающий (не будет работать если изменена кодировка консоли) — писать исходники в cp866.
Немного чуть более сложный, но не правильный — поменять кодировку консоли из программы на ту в которой написаны исходники.

Самый надежный вариант — не используйте русский в консольных программах — только английский. Сомневаюсь, что вам придется когда-то писать профессиональные консольные утилиты, которые бы умели адаптироваться к разным кодировкам, так что, возможно, нет смысла углубляться в эту тему. В GUI приложениях этой проблемы нет.

Источник

Vsesam

Почему в windows 7 вместо русских букв знаки вопроса. Что делать? Как избавиться? В семёрке такой дефект обычно возникает при русификации программ.

Не всех конечно, но случается. Эта проблема возникает из-за двух причин: реестра и файла «c_1252.nls».

Чтобы вопросительные знаки вместо букв больше не появлялись, скачайте архив и запустите первый файл.

Многие неувязки сразу исчезнут (потребуется перезагрузка), но не все. Для большинства пользователей этого вполне достаточно.

А вот те, кто часто использует различные самостоятельно русифицированные программы, в некоторых элементах знаки вопроса вместо русских букв, будут появляться и дальше.

Особенно это касается шрифтов, хотя опции (названия) русифицированы будут нормально (например «AAA Logo 2010» или «Ulead GIF Animator 5»).

Когда писать (использовать шрифт) в них, то вместо букв знаки вопроса появляются. Чтобы такого не происходило, выполните следующее.

Откройте диск «С», внизу нажмите на папку «windows», в ней найдите «System32» и нажмите. Теперь постепенно перемещаясь в низ, остановитесь на «c_1251.nls».

Читайте также:  Smart tv tizen или android

Скопируйте его и поместите на рабочем столе. После этого вместо последней цифры 1, поставьте 2.

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

Удалить старый и поставить новый просто — не получиться. Поэтому скопируйте переименованный и вставьте его в «System32» (можно перетаскиванием).

Система предложит вам вставить с заменой. Перезагрузите обязательно. Выберите этот вариант и больше появляться не будут вместо букв знаки вопроса.

Источник

Почему в PDO вопросительные знаки вместо русских букв при вставке данных в бд?

В php использую pdo для коннекта к бд, в php файле указано , в mysql везде стоит режим сравнения utf8_general_ci, использую такой код:

$db = new PDO(«mysql:host=localhost;dbname=site», «root», «123»);
$db->exec(«SET NAMES utf8»);
$stmt = $db->prepare(«INSERT INTO news (title, text, date) VALUES (?, ?, ?)»);
$stmt ->execute(array($_GET[‘title’], $_GET[‘txt’], $_GET[‘date’]));

И все равно в бд заходят вопросы вместо русских букв, почему?

  • Вопрос задан более трёх лет назад
  • 6678 просмотров

Оценить 3 комментария

у меня решилось все пересозданием бд

и перед запросом в бд делаю
mysql_query(«SET NAMES ‘utf8′»);
все

«в бд заходят» — это не слишком корректное описание проблемы.
Если все сделано именно так, как написано, то в БД входят нормальные символы. И надо тогда проверять, что при просмотре выбрана правильная кодировка.

Но скорее всего всё-таки где-то в базе utf8 не указана. «Везде», кстати никакого значения не имеет. Важно только то, что стоит в описании таблицы/полей. Посмотреть можно через
CREATE TABLE table_name
Подробнее можно почитать здесь: Проблемы с кодировкой в MySQL
К PDO эта проблема прямого отношения отношения не имеет.

PS. Не принципиально, но лучше задавать кодировку в DSN, а не отдельным запросом

Источник

Оцените статью