Проблема с русским языком после компилирования
|
|
HacKeR | Дата: Вторник, 14 Декабря 2010, 20:00 | Сообщение # 1 |
Злой Ангел
Сейчас нет на сайте
| Вот написал код, вписал в него Code setlocale( LC_ALL, "Russian" ); . У меня всё нормально отображается но скинув .exe файл другу, оказалось что у него не коректно отображается русский язык. Что делать?
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
Inu | Дата: Вторник, 14 Декабря 2010, 20:21 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Видимо, у него в настройках ОС (уж не знаю, какая) по другому настроены кодировки. Для русской Windows стандартной является ANSI-кодировка cp1251, а консоль использует cp866. Тема обширная, поэтому рекомендую почитать статью Джоэла Спольски вот тут.
Что же такое? Многие, очень многие задаются этим вопросом. Так что же такое?
Сообщение отредактировал Inu - Вторник, 14 Декабря 2010, 20:21 |
|
| |
HacKeR | Дата: Вторник, 14 Декабря 2010, 20:23 | Сообщение # 3 |
Злой Ангел
Сейчас нет на сайте
| ну а можно сделать так, чтобы и с cp1251 и с cp866 работало?
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
Inu | Дата: Вторник, 14 Декабря 2010, 20:32 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| Попробуй воспользоваться функцией CharToOEM Code CharToOemA(str,s);//str - конвертируемая строка, s - строка, в которую пишем
Что же такое? Многие, очень многие задаются этим вопросом. Так что же такое?
|
|
| |
HacKeR | Дата: Вторник, 14 Декабря 2010, 20:42 | Сообщение # 5 |
Злой Ангел
Сейчас нет на сайте
| Quote (Inu) Попробуй воспользоваться функцией CharToOEM ого:) Если у меня много строк ( так как делаю текстовою игру ) то можно ещё как то. смотрел в гуле, пишут что нужно в консоли прописать chcp 1251; но можно это сделать через ВС?
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
BOOM | Дата: Среда, 15 Декабря 2010, 08:26 | Сообщение # 6 |
I am the creator of ADE
Сейчас нет на сайте
| HacKeR, используй Win API, а именно, управление кодировками. И вообще, зачем создал ещё одну тему по кодеровке. Можно было бы задать вопрос в своей же теме: http://gcup.ru/forum/62-11538-1 ---------------------------------- Совсем забыл, у твоего друга не установлена необходимая кодировка. Пусть пере установит Windows, или установит кодировки на неё. Тогда всё будет работать хорошо.
______________________________ Я вернулся, и это чудо. ______________________________
Сообщение отредактировал BOOM - Среда, 15 Декабря 2010, 08:49 |
|
| |
Angevengelist | Дата: Среда, 15 Декабря 2010, 08:35 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Quote (HacKeR) ого:) Если у меня много строк ( так как делаю текстовою игру ) то можно ещё как то. смотрел в гуле, пишут что нужно в консоли прописать chcp 1251; но можно это сделать через ВС? Элементарный способ, написать функцию вывода на экран (типа cout), только уже с CharToOemA(str,s);
|
|
| |
HacKeR | Дата: Среда, 15 Декабря 2010, 12:01 | Сообщение # 8 |
Злой Ангел
Сейчас нет на сайте
| Quote (Angevengelist) Элементарный способ, написать функцию вывода на экран (типа cout), только уже с CharToOemA(str,s); ну а если у меня уже более 100 cout... то мне что, всё заменять?
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
Inu | Дата: Среда, 15 Декабря 2010, 12:41 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| HacKeR, попробуй перед установкой локали вставить эти две строки Code SetConsoleCP(1251); SetConsoleOutputCP(1251); Только в настройках консоли нужно переключить шрифт на Lucida Console. У меня такой вариант работает.
Что же такое? Многие, очень многие задаются этим вопросом. Так что же такое?
Сообщение отредактировал Inu - Среда, 15 Декабря 2010, 12:41 |
|
| |
BaHu3aTop | Дата: Среда, 15 Декабря 2010, 19:01 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| У меня проблема похожая, только русский язык не делается у меня, пробывал и Code setlocale( LC_ALL, "Russian" ); и Code SetConsoleCP(1251); SetConsoleOutputCP(1251); с шрифтом Lucida Console, все равно иероглифы(microsoft visual c++ 2010)
Сообщение отредактировал BaHu3aTop - Среда, 15 Декабря 2010, 19:01 |
|
| |
Inu | Дата: Среда, 15 Декабря 2010, 20:35 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Quote (BaHu3aTop) пробывал и А одновременно? Пробовал?
Что же такое? Многие, очень многие задаются этим вопросом. Так что же такое?
|
|
| |
BaHu3aTop | Дата: Среда, 15 Декабря 2010, 20:42 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| Пробывал, возможно не работает из-за minimalistic pspsdk?
|
|
| |