Страница 1 из 2
Free Paskal, Geany, Кирилица
Добавлено: 07.10.2017 00:03:47
Яра
Добрый день!
Помогите, пожалуйста, уже месяц не могу решить проблему с выводом кириллицы в Geany. В самом Паскале все окей, а Geany - козябры...
Paskal

Geany


Re: Free Paskal, Geany, Кирилица
Добавлено: 07.10.2017 10:15:51
Лекс Айрин
Надо подобрать кодировку текста. Попробуй, для начала, пересохранить исходный текст в CP886.
Re: Free Paskal, Geany, Кирилица
Добавлено: 08.10.2017 10:04:04
Яра
Лекс Айрин писал(а):Надо подобрать кодировку текста. Попробуй, для начала, пересохранить исходный текст в CP886.
Перепробовала, уже все кодировки... Все равно "козябры". Еще и длину слова удваивает. Если слово состоит из 11 символов, выводит - 22.

В програмке тоже меняла кодировку - не помагает(

Re: Free Paskal, Geany, Кирилица
Добавлено: 08.10.2017 10:55:20
zub
Версия fpc 2.6.x?
Re: Free Paskal, Geany, Кирилица
Добавлено: 08.10.2017 12:25:13
vitaly_l
Яра писал(а):Если слово состоит из 11 символов, выводит - 22
Это значит, что слово записано в UTF8, но вывести Вы его пытаетесь в CP886, поэтому получается из 11 символов 22. Что-бы вывести слово, его нужно либо записать в кодировке CP886, либо преобразовать к кодировке CP886.
Соответственно для преобразования, Вам нужно выполнить такую команду:
s866 := Utf8ToCp866(s); либо
sConsole := Utf8ToConsole(s); И потом уже делать
writeLn(s866); или
writeLn(sConsole); Яра писал(а):меняла кодировку - не помагает
Принцесса, чтобы записать слово в кодировке CP886 нужно не только указать CP886 кодировку, но и пересохранить, сам файл проекта, в кодировке CP886 и вместо получившихся, после пересохранения, кракозябр - написать Ваше искомое "информатика". Тогда всё будет правильно отображаться без дополнительных вышеприведённых функций. А иначе, Вы кодировку указали CP886, а файл со словом "информатика" остался в кодировке Utf8 и поэтому отображаются 22 кракозябры вместо 11 букв.
/
Re: Free Paskal, Geany, Кирилица
Добавлено: 08.10.2017 21:14:22
Яра
zub писал(а):Версия fpc 2.6.x?
Нет, 3.0.2
Добавлено спустя 1 минуту 47 секунд:vitaly_l писал(а):Это значит, что слово .../
Большое спасибо... Все заработало...Отдельное спасибо за принцессу)
Re: Free Paskal, Geany, Кирилица
Добавлено: 09.10.2017 08:45:54
vitaly_l
Яра писал(а):Отдельное спасибо за принцессу)
Только не говорите, что после этих слов, я, обязан на Вас жениться,

и мы счастливыми нарожаем 5-детей и умрём в один день с улыбками на устах, а дети улетят с этой планеты на межгалактическом корабле, который мы им подарим на день совершеннолетия самого младшего.
Re: Free Paskal, Geany, Кирилица
Добавлено: 11.10.2017 20:20:30
Яра
vitaly_l писал(а):Только не говорите, что после этих слов, я, обязан на Вас жениться,

и мы счастливыми нарожаем 5-детей и умрём в один день с улыбками на устах, а дети улетят с этой планеты на межгалактическом корабле, который мы им подарим на день совершеннолетия самого младшего.
Нет-нет, что Вы

А вот если Вы мне согласитесь помочь, если у мене что-то не будет получатся (имею в виду Paskal ), буду очень благодарна.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 03:54:22
SSerge
Яра, вы только учитывайте, что среди всех предложенных методов решения, на самом деле нет ни одного правильного.
Да-да, на смотря на то, что результат все таки получен, все предложенные решения относятся к пристраиваниям костылей, как на картинах Сальвадора Дали. Такой вот сюр.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 09:09:05
vitaly_l
SSerge писал(а):нет ни одного правильного.
Да-да, на смотря на то, что результат все таки получен, все предложенные решения относятся к пристраиваниям костылей, как на картинах Сальвадора Дали. Такой вот сюр.
Каждый хочет, выглядеть круче "Сальвадора Доли"

- особенно кода вопрос задаёт прекрасная и очаровательная принцесса.
Ну так расскажите и объясните, нам всем, как с версии 3.0

можно всё это делать и другими методами (костылями), а не занимайте жёсткий диск этого сервера своими бесполезными словами

.
.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 10:54:37
Лекс Айрин
SSerge, укажи правильный?
Я, кстати, еще не закончил.... далее надо уже выставлять кодировку при компиляции и искал как это делать без явного указания в тексте. (директивой codepage).
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 14:06:33
Vadim
Лекс Айрин
А чем Вам директива codepage не нравится? Указал её и всё, больше ничего делать не надо - utf8 будет правильно в виндовозной консоли воспроизводиться.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 14:40:01
vitaly_l
Vadim писал(а):Лекс Айрин
А чем Вам директива codepage не нравится?
он априори ложно конвертирует в
CP866, когда возвращается 22 символа вместо 11, т.к. не понимает для чего указывают $CODEPAGE

и поэтому ему приходится конвертировать файл проекта в
CP866, вместо правильного указания CODEPAGE.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 15:09:29
SSerge
vitaly_l писал(а):он априори ложно пишет туда CP866, когда возвращается 22 символа вместо 11, т.к. не понимает для чего указывают $CODEPAGE

и поэтому всем приходится конвертировать файл проекта в CP866. Вместо того чтобы правильно указать CODEPAGE.
Теперь по-русски, пжалста, эту вашу аллюзию мыслей...
Что касается кодовой страницы CP866, она, например в компиляторах ветки 2.7 настолько странно действовала, что можно было сказать, что данная директива для обработки не предусмотрена. Вот считайте, что не существует в директивах CP866, кои-8 и прочей экзотики. Выбор из двух: {$codepage utf8} и {$codepage UTF8} и {$codepage CP1251} (регистр не забываем, во всяком случае во всех описаниях наименование кодовой страницы строго в верхнем регистре).
т.е:
- Делается текст в UTF-8 без BOMов
- опциями компиляции выставляется codepage для RTL в UTF-8 (Лазарус для сових проектов это делает, см. если что там, какой именно ключ)
- в тексте директива {$mode objfpc} {$codepage UTF-8} {H+}
- вместо string - UnicodeString, и только в этом случае можно надеяться на посимвольную обработку строк в виде массива... до тех пор, пока в исходные данные не попадет нечто, кодируемое суррогатными парами. Условно к русским буквам это нечто не относится.
подобного рода программы правильно ведут себя в кроссплатфоменном варианте и благополучно справляются с выводом и вводом кириллицы в консолях win.
Re: Free Paskal, Geany, Кирилица
Добавлено: 12.10.2017 15:13:59
vitaly_l
SSerge писал(а):Теперь по-русски, пжалста, эту вашу аллюзию мыслей...
В какой кодировке записана страница, ту кодировку и нужно указывать в CODEPAGE.
Всё остальное - вода.
С другой стороны, какую кодировку указали в CODEPAGE, в той кодировке и нужно сохранить проект.
Всё остальное опять-таки - вода.