converting to execution character set: Illegal byte sequence
От: Аноним  
Дата: 21.11.06 13:13
Оценка:
Добрый вечер!

Почему компиляция wprintf("Привет!") приводит к ошибке converting to execution character set: Illegal byte sequence?

Использую компилятор GCC.
Re: converting to execution character set: Illegal byte sequ
От: np9mi7 Россия  
Дата: 21.11.06 13:16
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Почему компиляция wprintf("Привет!") приводит к ошибке converting to execution character set: Illegal byte sequence?


wprintf(L"Привет!");
, так пробывал?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Re[2]: converting to execution character set: Illegal byte s
От: Аноним  
Дата: 21.11.06 13:21
Оценка:
Здравствуйте, np9mi7, Вы писали:

N>Здравствуйте, <Аноним>, Вы писали:


А>>Почему компиляция wprintf("Привет!") приводит к ошибке converting to execution character set: Illegal byte sequence?


N>
N>wprintf(L"Привет!");
N>
, так пробывал?



Извините! Именно так и пробовал. Когда вопрос писал , пропустил L!

Корректный вопрос :

Почему компиляция wprintf( L"Привет!" ) приводит к ошибке converting to execution character set: Illegal byte sequence?
Re[3]: converting to execution character set: Illegal byte s
От: np9mi7 Россия  
Дата: 21.11.06 13:33
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А> Почему компиляция wprintf( L"Привет!" ) приводит к ошибке converting to execution character set: Illegal byte sequence?


Вначале скомпилировал такой код
#include <cstdio>
#include <cwchar>

int main () {
    std::wprintf (L"Привет!");
}
, а потом нашел вот это http://discussion.forum.nokia.com/forum/archive/index.php/t-85318.html;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Re[4]: converting to execution character set: Illegal byte s
От: Аноним  
Дата: 21.11.06 13:40
Оценка:
Здравствуйте, np9mi7, Вы писали:

N>Здравствуйте, <Аноним>, Вы писали:


А>> Почему компиляция wprintf( L"Привет!" ) приводит к ошибке converting to execution character set: Illegal byte sequence?


N>Вначале скомпилировал такой код

N>
N>#include <cstdio>
N>#include <cwchar>

N>int main () {
N>    std::wprintf (L"Привет!");
N>}
N>
, а потом нашел вот это http://discussion.forum.nokia.com/forum/archive/index.php/t-85318.html;



А как мне сказать комрилятору чтоб он работал с юникодом?
Re[5]: converting to execution character set: Illegal byte s
От: Кодт Россия  
Дата: 22.11.06 11:15
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А как мне сказать комрилятору чтоб он работал с юникодом?


Тебе надо сказать компилятору, чтобы он работал не с юникодом, а с кириллической байтовой кодировкой. Ведь текст программы — байтовый, а не вордовый/двордовый.
Этим ведает опция -finput-charset=xxxxx где xxxxx — кодировка твоего текстового редактора. И ещё переменная окружения LC_CTYPE.
ru_RU, ru_RU.cp1251, ru_RU.koi8-r — затрудняюсь сказать, как правильно. Нужно читать документацию по iconv.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[5]: converting to execution character set: Illegal byte s
От: zaufi Земля  
Дата: 22.11.06 13:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, np9mi7, Вы писали:


N>>Здравствуйте, <Аноним>, Вы писали:


А>>> Почему компиляция wprintf( L"Привет!" ) приводит к ошибке converting to execution character set: Illegal byte sequence?


N>>Вначале скомпилировал такой код

N>>
N>>#include <cstdio>
N>>#include <cwchar>

N>>int main () {
N>>    std::wprintf (L"Привет!");
N>>}
N>>
, а потом нашел вот это http://discussion.forum.nokia.com/forum/archive/index.php/t-85318.html;



А>А как мне сказать комрилятору чтоб он работал с юникодом?


установи свою локаль в ru_RU.utf8
набирая текст в редакторе (ну там mcedit, kate, any unicode aware editor) ты получишь файлы в utf8 которые лихко заглотит и компилятор...

example:
zaufi tests # cat wp.cc
#include <cstdio>
#include <cwchar>
#include <locale>

int main () {
    std::setlocale(LC_CTYPE, "");
    std::wprintf(L"Привет!\n");
}
zaufi tests # g++ -o wp wp.cc
zaufi tests # ./wp
Привет!
zaufi tests # locale
LANG=en_US.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=POSIX
LC_TIME=en_US.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.