LINUX.ORG.RU

Кириллица в codeblocks

 ,


0

1

Gentoo linux. Вместо символов кириллицы в консоли при запуске программы отражается чёрт знает что, причём кириллические символы компилятор почему-то понимает как int, а не как unsigned char. Что делать?

На будущее: Code::Blocks как таковой тут не при чём. Начать надо с того, какой у тебя ЯП, c или c++, чем выводишь, как оформляешь кириллические строки. Пример кода тоже не повредит.

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

Проблема, как тебе уже написали, в неверной кодировке. Совет @EXL не догма, но и не глупость, кстати. Вынос всего нелатинского в отдельные файлы в реальных проектах облегчает борьбу с кодировками. Оформление юникода прямо в исходниках возможно, но требует предельной аккуратности.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Вынос всего нелатинского в гетто, так же, как и необходимость российским программистом писать в латинице, пожалуй, можно назвать технорасизмом. А расизм сейчас не в моде. Автор, когда решишь проблему, отпишись, пожалуйста. Я коллекционирую такие вот решения. К сожалению, сам с такой проблемой не сталкивался, но если выложишь какой-нибудь «привет, мир» вместе с прилагающимся (команда компиляции, файл проекта) и проч., попробую посмотреть.

den73 ★★★★★ ()
Ответ на: комментарий от den73

но если выложишь какой-нибудь «привет, мир» вместе с прилагающимся (команда компиляции, файл проекта) и проч.

Собственно, я от него в первом абзаце хотел того же. Проблема есть, а конкретного описания этой проблемы нет.

Вынос всего нелатинского в гетто, так же, как и необходимость российским программистом писать в латинице, пожалуй, можно назвать технорасизмом

Скорее, это цифровое неравенство. Расизм подразумевает принудиловку. А тут ситуация такая, что программа зачастую предполагает перевод на разные языки. Соответственно, какой-то язык должен оказаться «главным» или исходным, и это, увы, тот язык, на котором общается большинство вкладчиков в ИТ.

Разумеется, если заранее известно, что программа за пределы моей страны не выйдет, необходимости в «гетто» нет. На работе я могу спокойно писать в своей программе русские строки в UTF8 прямо в Qt Creator, забирая их в fromUtf8. Другое дело, что сама эта кодировка в некотором смысле дискриминационная: латиница съедает один байт на символ, кириллица два. Более тяжёлые представления юникода не дискриминируют русских, но дискриминируют китайцев и японцев.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Более тяжёлые представления юникода не дискриминируют русских, но дискриминируют китайцев и японцев.

Но ведь иероглиф - это не буква, а слово или слог. Разве не справедливо на него больше байт использовать, чем на букву?

Kogrom ()