URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7667
[ Назад ]

Исходное сообщение
"g++, странные проблемы с русской кодировкой."

Отправлено crot , 24-Окт-08 20:11 
Добрый день.
Странная ситуация.
Есть файл в кодировке cp1251.
В своей проге на C++ через fopen открываю файл
читаю строку из файла с помощью fgets.
Дальше с полученной строкой делаю следующее.
strstr(buffer,"счет№") И в результате получаю null. Хоть в первой строке файла точно есть эта фраза.
Что это за приколы и как их пофиксить?


Содержание

Сообщения в этом обсуждении
"g++, странные проблемы с русской кодировкой."
Отправлено Аноним , 24-Окт-08 23:07 
параметр "счет№" это в какой кодировке, определённо не cp1251? ))

Если ты хочешь указать параметр прямо в коде программы (правильнее это делать в ресурсах-настройках) то можешь написать так:

static char srch[] = { 241, 247, 184, 242, 185, 0}; /*"счёт№" в кодировке CP1251*/
strstr(buffer, srch)


"g++, странные проблемы с русской кодировкой."
Отправлено NuINu , 25-Окт-08 15:25 
>параметр "счет№" это в какой кодировке, определённо не cp1251? ))
>
>Если ты хочешь указать параметр прямо в коде программы (правильнее это делать
>в ресурсах-настройках) то можешь написать так:
>
>static char srch[] = { 241, 247, 184, 242, 185, 0}; /*"счёт№"
>в кодировке CP1251*/
>strstr(buffer, srch)

не так не годиться, непонятно совершенно! т.е не сопровождаемо
писать надо как пишеться, и приводить к своей кодировке то что считал с файла через iconv
можно конечно наоборот.
но в код преобразованные кодировки лучше не вставлять, это ужасно выглядит.


"g++, странные проблемы с русской кодировкой."
Отправлено Аноним , 25-Окт-08 18:16 
В коде кириллицы вообще быть не должно

"g++, странные проблемы с русской кодировкой."
Отправлено Аноним , 25-Окт-08 21:23 
>В коде кириллицы вообще быть не должно

utf8 на здоровье


"g++, странные проблемы с русской кодировкой."
Отправлено const , 26-Окт-08 03:52 
>В коде кириллицы вообще быть не должно

Что за дискриминация? Тогда уж, в коде не должно быть строковых констант.


"g++, странные проблемы с русской кодировкой."
Отправлено angra , 26-Окт-08 03:53 
А обосновать? Я бы понял "в коде языкозависимых строковых констант быть не должно, их нужно вынести в отдельный файл для облегчения интернализации", а вот ваше утверждение попахивает шовинизмом, чем кириллица так провинилась?

"g++, странные проблемы с русской кодировкой."
Отправлено crot , 30-Окт-08 00:12 
Возник еще один вопрос а в какой кодировке g++ воспринимает русскую строку в коде?



"g++, странные проблемы с русской кодировкой."
Отправлено Аноним , 30-Окт-08 02:00 
>Возник еще один вопрос а в какой кодировке g++ воспринимает русскую строку
>в коде?

Он вообще не воспринимает её как строку )) Для него это последовательность байт.

Соответственно никакой проблемы кодировки ))


"g++, странные проблемы с русской кодировкой."
Отправлено vertur , 17-Ноя-08 03:03 
>Возник еще один вопрос а в какой кодировке g++ воспринимает русскую строку
>в коде?

В какой напечатаете. Вы ведь знаете в какой кодировке набираете сорцы ?
Готов поспорить что в вашем случае это utf8, а вы этого даже и не заметили.