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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
12.04.2011, 23:00     Кодировки в Code::Blocks и cygwin #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
Посмотрите здесь:

C++ отладка Code::Blocks
C++ Code::Blocks
C++ Code::blocks
MS VS in CODE BLOCKS C++
C++ Настройка Code::Blocks
C++ code::blocks 10.05
C++ Установка Code Blocks
C++ Code::Blocks

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

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

Текущее время: 04:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru