Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
#1

Кодировки в Code::Blocks и cygwin - C++

12.04.2011, 23:00. Просмотров 1345. Ответов 1
Метки нет (Все метки)

Добрый день.

Игрался с символами разных языков в Code::Blocks и cygwin. Вот исходник, который я компилировал:

C++
1
2
3
4
5
6
7
#include <iostream>
 
int main(int argc, char *argv[])
{
    std::cout << "Hello, tester!\nRU: великолепно\nDE: prГ¤chtig\nCZ: krГЎsnГЅ\nJP: г‚‚";
    return 0;
}
У меня эти символы не отображаются нормально. Выкладываю скриншот строки:
Кодировки в Code::Blocks и cygwin

При компиляции в Code::Blocks выдаётся такой результат:
Кодировки в Code::Blocks и cygwin

Вот он же при запуске из-под cygwin, а затем с перекомпиляцией в cygwin:
Кодировки в Code::Blocks и cygwin

При чём вызовы setlocale( LC_ALL, "RU" ) и setlocale( LC_ALL, "C.UTF-8" ) ничего не меняют.

При просмотре конечного exe-файла в Code::Block'овском варианте кусок этой строки выглядит так:

Код
Hello, tester!
RU: великолепно
DE: prächtig
А вот вариант cygwin:

Код
Hello, tester!
RU: великолепно
DE: prächtig
В общем, они идентичны. Отсюда вопрос: почему под одним и тем же cygwin идентичные данные выглядят по-разному, если программы скомпилированы разными компиляторами (в разных средах)? Функции из cygwin'овских библиотек работают как-то по-другому?

У кого есть мысли - поделитесь, пожалуйста. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2011, 23:00     Кодировки в Code::Blocks и cygwin
Посмотрите здесь:

Code::blocks и VS - C++
всем привет, у меня такой вопрос: какой в Code::blocks аналог для #include stdafx.h? Нужно запустить, операции использую для этой...

Хедеры в Code Blocks - C++
До этого сидел в студии 10ой, сейчас скачал Code Blocks, настроил компилятор, проблема в том, что когда создаю класс, компилятор не видит...

Не компилируется в Code::Blocks - C++
Установил на Windows 7 среду Code::Blocks 10.05 При нажатии на кнопку &quot;Build and run&quot; НИЧЕГО НЕ ПРОИСХОДИТ! В чем дело, подскажите,...

WinAPI-Code::Blocks - C++
Пытаюсь в C::B создать любое приложение WinAPI - ничего не работает. Открывается пустая консоль и все. Причем прога висит в диспетчере...

Libcurl code blocks - C++
Уже вторые сутки пытаюсь установить библиотеку curl, но перерыв кучу материала в интернете так и не смог найти толкового гайда по...

Компиляция в Code Blocks - C++
Скачала Code Blocks с компилятором. Написала #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello World!!!&quot;; ...

Code Blocks ошибка - C++
Помогите разобраться, почему программа выдает ошибку.

отладка Code::Blocks - C++
Помогите кто разбирается в этом:(. Недавно скачал новые версии Code::Blocks (10.05) codeblocks-10.05mingw-setup и codeblocks-10.05setup....

Ошибки в Code Blocks - C++
Подскажите пожалуста.Я начинаю писать.Пишу в Code Blocks по началу все было нормально.Сейчас пишу все тоже самое выдает ошибку error:...

sdl и code::blocks - C++
Code::Blocks версии 12.11 MinGW SDL2-2.0.0 Вобщем действую по гайду отцов с Хабра. Скачиваю SDL2-2.0.0 в архиве, вытаскиваю егго из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15840 / 10167 / 1522
Регистрация: 24.12.2010
Сообщений: 19,167
12.04.2011, 23:47     Кодировки в Code::Blocks и cygwin #2
Любопытно. Именно сегодня, несколько часов назад я понял, что кодировки - штука ехидная.
Я всегда мыслил 256-байтной табличкой, и видимо, был не прав. Там такие механизмы работают!
И вот хотелось бы понять - Где, Кто и Зачем.
Поясняю ситуацию. Обычный Courier New перекидываю на хост, пытаюсь им рисовать (GD) - получаю ахинею. Смотрю у себя в Винде этот самый Курьер, а там вовсе не в C0 наши русские стоят! Ба! Да энтот курьер на UFT-8 настроен. И Винда при всех отображениях кириллицы каким-то образом все в UTF-8 преобразовывает. А Линух (или какой-то X) поступает честнее - требует явной перекодировки.
Так вот интересно, где этот преобразователь? В файле фонта? В каком-то флаге "локализации" ?
Как они взаимодействуют ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru