LINUX.ORG.RU

Кириллица в codeblocks

 ,


0

1

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



Последнее исправление: Reymet_2 (всего исправлений: 1)

причём кириллические символы компилятор почему-то понимает как int

Потому что Юникод.

Какая локаль стоит?

gedisdone ★★★
()

Что делать?

Не заниматься дурью и писать код только в ASCII, а все переводы строк выносить в l10n-файлы.

EXL ★★★★★
()

Твоя программа неверна и выводит текст в неверной кодировке

cppsektant
()
Ответ на: комментарий от EXL

Никакой разницы, где именно в исходниках находятся переводы. Проблема в неверной кодировке при И/О

cppsektant
()

Поменять терминал, например: Settings->Environment: lxterminal –title=$TITLE -e

Kogrom
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kogrom
()

проверь кодировку исходников

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.