gcc русские символы

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
yandzee
мл. сержант
Сообщения: 75
Зарегистрирован: 2010-01-26 17:12:56

gcc русские символы

Непрочитанное сообщение yandzee » 2010-08-05 12:14:20

Написал программу простецкого содержания, с сообщениями по русски.
Скомпилировал gcc version 4.2.1 20070719 [FreeBSD]

Вывод:

%./prog
п п?п?п?п? п?п?я? п?я?п?п?п?я?п? я?п?п?я?п?п??
warning: this program uses gets(), which is unsafe.
f
fп©п?я?п?п?я? п?п?п? я?я?п?я?я?п? п?п?п?п?п?п?п?.
п©п?я?п?п?я? п?п?п? я?я?п?я?я?п? п?п?п?п?п?п?п?.

Как сделать нормальный вывод русский букв?

P.S. Еще прям в сюда вывел warning:.. а это как убрать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: gcc русские символы

Непрочитанное сообщение hizel » 2010-08-05 12:57:32

Код: Выделить всё

man gets 
:)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

yandzee
мл. сержант
Сообщения: 75
Зарегистрирован: 2010-01-26 17:12:56

Re: gcc русские символы

Непрочитанное сообщение yandzee » 2010-08-05 15:47:00

а что с русскими символами то делать?

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: gcc русские символы

Непрочитанное сообщение rmn » 2010-08-05 21:52:10

кодировка в консоли какая? utf-8?
Значит и сорцы в utf-8 пиши.

yandzee
мл. сержант
Сообщения: 75
Зарегистрирован: 2010-01-26 17:12:56

Re: gcc русские символы

Непрочитанное сообщение yandzee » 2010-08-06 19:41:05

Переписал програмку через ee, при выполнении отобразился русский текст, а в редакторе были непонятные символы.

Ну это ee. Я использую gedit, как там сменить кодировку в UTF-8?

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: gcc русские символы

Непрочитанное сообщение rmn » 2010-08-06 20:32:50

лучше научиться писать приложения, не зависящие от кодировки терминала.

Гость
проходил мимо

Re: gcc русские символы

Непрочитанное сообщение Гость » 2010-08-08 16:57:38

ee(1) и vi(1) не поддерживают юникод. Это никак не зависит от терминала или локали, они просто написаны для 8битных кодировок.

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: gcc русские символы

Непрочитанное сообщение Gloft » 2011-06-09 9:51:32

rmn писал(а):лучше научиться писать приложения, не зависящие от кодировки терминала.
Есть какие-либо статьи на эту тему?

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: gcc русские символы

Непрочитанное сообщение rmn » 2011-06-09 12:39:16

Gloft писал(а): Есть какие-либо статьи на эту тему?
в гугле есть (i18n, l10n). Простейший вариант - обертка над printf:

Код: Выделить всё

void my_printf(char* fmt, ...)
{
        va_list args;
        char Buffer[1024]="";
        va_start(args, fmt);
        vsprintf(Buffer, fmt, args);

        // ...
        // определяем кодировку терминала и если она отличается от кодировки
        // программы, конвертируем строку в Buffer с помощью iconv()
        // ...

        printf(Buffer);
        va_end(args);
}
и в коде все вызовы printf() заменяем на my_printf()