Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2019, 15:22   #1
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию Проблема с кодировкой - разная кодировка при запуске из IDE и exe

Lazarus 2.0.2, Win32, все настройки из коробки (то есть только что установлен, в настройках не копался).

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

Проверим? Создаем новый проект, на кнопку пишем следующее:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  path, exists: string;
begin
  path:=GetEnvironmentVariable('LOCALAPPDATA');
  if DirectoryExists(path)
    then exists:='Exists'
    else exists:='Not Exists';
  ShowMessage(exists+#13#10+path);
end;
Запускаем из IDE:

1.png

Запускаем exe:

2.png

Подключаю модуль LazUTF8, код переписываю таким образом:

Код:
path:=UTF8ToWinCP(GetEnvironmentVariableUTF8('LOCALAPPDATA'));
Теперь при запуске из IDE:

3.png

А при запуске exe:

4.png

В чем проблема и как сделать так, чтобы запуск из IDE давал тот же результат, что и запуск exe?
Arigato вне форума Ответить с цитированием
Старый 12.06.2019, 20:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

баги, похоже.
читайте тут - http://www.freepascal.ru/forum/viewtopic.php?f=5&t=6031
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.06.2019, 22:10   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Почитал про баг. Но это не то. Был бы баг, было бы всегда не в той кодировке.

У меня ситуация: запускаешь из IDE - одна кодировка, запускаешь exe - кодировка другая. То есть только что программа из IDE работала нормально. Ее даже не перекомпилировал, а просто exe запустил, а там кодировка слетевшая.

Вот чему не могу найти разумное объяснение...
Arigato вне форума Ответить с цитированием
Старый 13.06.2019, 01:01   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
не могу найти разумное объяснение...
Разумное объяснение только одно - IDE при запуске процесса делает свой Environment. И как-то криво.
Black Fregat вне форума Ответить с цитированием
Старый 14.06.2019, 00:54   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Вообще не наблюдаю такого бага.
У меня такое получилось только при отключении UTF-8 для RTL, т.е. зашел сюда:
screenshot 2019-06-14 001.png

и нажал "Use system encoding"
Только тогда получился баг когда не UTF8 функция возвращает ???

Но это новый проект созданный в IDE.

Последний раз редактировалось Человек_Борща; 14.06.2019 в 00:59.
Человек_Борща вне форума Ответить с цитированием
Старый 14.06.2019, 11:24   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Вообще не наблюдаю такого бага.
Какая версия Lazarus? Напомню, у меня Lazarus 2.0.2 Win32, при этом ОС Win64.

Приложил архив с проектом.
Вложения
Тип файла: zip Кодировка.zip (124.4 Кб, 24 просмотров)
Arigato вне форума Ответить с цитированием
Старый 14.06.2019, 21:24   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

На вашем проекте тоже всё нормально.

OS: Win 10 x64
IDE:
screenshot 2019-06-14 001.jpg
Человек_Борща вне форума Ответить с цитированием
Старый 14.06.2019, 21:42   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Да, версия Лазаруса совпадает. Винда 7 x64, но не думаю, что в ней дело. Странно...
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная кодировка в PHP (конфликт с кодировкой html) jihot HTML и CSS 1 12.01.2015 00:00
Кодировка текста, не могу определиться с кодировкой spirit-ua Общие вопросы Delphi 15 30.07.2013 12:27
Проблема с кодировкой Jafar_ SQL, базы данных 0 07.06.2011 13:06
Проблема с кодировкой motorway PHP 11 02.10.2009 21:32
Проблема с кодировкой motorway Microsoft Office Excel 3 03.07.2009 22:27