Иероглифы вместо русских букв.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Иероглифы вместо русских букв.

Сообщение Paster Fob » 11.05.2011 20:19:45

Ну вот установил Lasarus,попробовал написать что-нибудь,но вместо русских букв какие-то иероглифы.Вот к примеру.

Изображение

Почему так,или что-то надо настроить?
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Иероглифы вместо русских букв.

Сообщение Nik » 11.05.2011 20:29:55

Скорее всего в консоли не поддерживается UTF8. Попробуйте вывести как-то так:

Код: Выделить всё
writeln(UTF8ToConsole(s));
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Иероглифы вместо русских букв.

Сообщение Ism » 11.05.2011 20:30:33

UTF8ToAnsi

или чтото такое для Dos кодировки
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Иероглифы вместо русских букв.

Сообщение Mr.Smart » 11.05.2011 20:31:39

Правой кнопкой мыши в редакторе. В меню выдираем пункт "Параметры файла->Кодировка->CP866".
Данная кодировка используется в консольных программах Windows.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 11.05.2011 20:42:10

Mr.Smart писал(а):Правой кнопкой мыши в редакторе. В меню выдираем пункт "Параметры файла->Кодировка->CP866".
Данная кодировка используется в консольных программах Windows.

Большое спасибо,теперь всё ништяк!
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 14.05.2011 06:02:03

А по другим кодировкам можете что-нибудь расскакать,для чего они?
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.


Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 14.11.2012 18:40:30

Как писать русскими буквами в Lazarus?
Изображение
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Иероглифы вместо русских букв.

Сообщение mtdu » 14.11.2012 20:57:16

В книге "Основы программирования в среде Lazarus" страница 70 написано подробно как быть.
mtdu
новенький
 
Сообщения: 31
Зарегистрирован: 22.11.2009 13:56:51

Re: Иероглифы вместо русских букв.

Сообщение SSerge » 15.11.2012 04:51:20

Следующий вопрос предвижу :D "почему это у меня не работают функции copy, delete, insert и вместо i-го символа строки получается какая-то хрень, а длина строки из трех русских букв почему равна шести?"

*подумал* и решил таки рекомендовать:

http://www.freepascal.ru/article/freepa ... 718142000/ - "Правильный" путь развития, по работе с русским языком, особенно в консоли, противоречащий 99% учебников по FreePascal, Pascal и Deplhi

И, "прикладная кадаврология", http://sirserge.altai.info/articles/?id=41 о том, как работать с русским языком "по старому пути развития", ведущему в тупик. Беллетристику аккуратно пропускаем мимо ушей, стиль написания там чернушный.

смотрите сами, стоит эти материалы применять или нет, написаны они отнюдь не для начинающих
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 15.11.2012 06:35:11

mtdu писал(а):В книге "Основы программирования в среде Lazarus" страница 70 написано подробно как быть.

Меня интересует ввод русских букв(readln),а не вывод(writeln).Я устанавливаю кодировку CP866.Вывод букв корректный,а ввод нет.Я же выше привёл пример.Программа "просит" ввести предложение нормальным русским шрифтом.Я ввожу,но вместо корректного ввода что-попало.
Как вводить русские буквы в консольных приложениях?
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Иероглифы вместо русских букв.

Сообщение SSerge » 15.11.2012 07:36:56

Иллюстрация "старого подхода".
Внимание!!! Lazarus должен быть исключительно "официальный", релизный , функции преобразования в так называемых "последних" версиях на компиляторе 2.7.1 обычно испорчены до необратимого состояния. Файл - в кодировке UTF8.

Код: Выделить всё
program project1;
Uses FileUtil;

Var s1,s2,s3:UTF8String;

begin
   s1:='Введите предложение:';
   write(UTF8ToConsole(s1));
   readln(s2);
   s2:=ConsoleToUTF8(s2);
   s3:='Вы ввели:';
   writeln(UTF8ToConsole(s3),UTF8ToConsole(s2));
end.                                       


...вообще то лазарус не предназначен для работы с консолью.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 15.11.2012 08:06:03

SSerge писал(а):Иллюстрация "старого подхода".
Внимание!!! Lazarus должен быть исключительно "официальный", релизный , функции преобразования в так называемых "последних" версиях на компиляторе 2.7.1 обычно испорчены до необратимого состояния. Файл - в кодировке UTF8.

Код: Выделить всё
program project1;
Uses FileUtil;

Var s1,s2,s3:UTF8String;

begin
   s1:='Введите предложение:';
   write(UTF8ToConsole(s1));
   readln(s2);
   s2:=ConsoleToUTF8(s2);
   s3:='Вы ввели:';
   writeln(UTF8ToConsole(s3),UTF8ToConsole(s2));
end.                                       


...вообще то лазарус не предназначен для работы с консолью.


Lazarus v1.0.
результат:

Изображение
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Иероглифы вместо русских букв.

Сообщение SSerge » 15.11.2012 08:20:19

FreePascal какой? Должен быть 2.6.0

Добавлено спустя 5 минут 24 секунды:
что то не обратил внимание... У вас собственно что вводится, то и выводится, без искажений. Очень подозреваю ненормальные настройки консоли в рамках Windows (русификаторы какие нибудь и т.п.) Во всяком случае, русские буквы должны печататься как рксские буквы, когда вы их набираете, это к lazarus/freepascal отношения не имеет, это настройки и функции вашей операционной системы

Добавлено спустя 1 минуту 4 секунды:
Как до консоли добираетесь?
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Иероглифы вместо русских букв.

Сообщение Paster Fob » 15.11.2012 08:48:16

SSerge писал(а):Как до консоли добираетесь?

Создать проект=>программа
FPC 2.6.0
Lazarus официальный с сайта.
При вводе русских букв в FPC проблем нет.
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 269

Рейтинг@Mail.ru