Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 12.06.2019, 16:22   #1
Arigato
СуперПрограммист
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Адрес: Россия РФ Регистрация: 27.07.2008
Сообщений: 13,846
Репутация: 3619
По умолчанию Проблема с кодировкой - разная кодировка при запуске из 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
Просмотров: 158

Размер: 11.3 Кб

Запускаем exe:

Название: 2.png
Просмотров: 165

Размер: 10.7 Кб

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

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

Название: 3.png
Просмотров: 174

Размер: 10.9 Кб

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

Название: 4.png
Просмотров: 156

Размер: 10.5 Кб

В чем проблема и как сделать так, чтобы запуск из IDE давал тот же результат, что и запуск exe?
__________________
E-Mail: arigato.freelance@gmail.com
Arigato вне форума   Ответить с цитированием
Старый 12.06.2019, 21:02   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

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

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

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

Вот чему не могу найти разумное объяснение...
__________________
E-Mail: arigato.freelance@gmail.com
Arigato вне форума   Ответить с цитированием
Старый 13.06.2019, 02:01   #4
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,499
Репутация: 1038
По умолчанию

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

Вообще не наблюдаю такого бага.
У меня такое получилось только при отключении UTF-8 для RTL, т.е. зашел сюда:
Нажмите на изображение для увеличения
Название: screenshot 2019-06-14 001.png
Просмотров: 94
Размер:	30.7 Кб
ID:	96953

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

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

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

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

Приложил архив с проектом.
Вложения
Тип файла: zip Кодировка.zip (124.4 Кб, 22 просмотров)
__________________
E-Mail: arigato.freelance@gmail.com
Arigato вне форума   Ответить с цитированием
Старый 14.06.2019, 22:24   #7
Человек_Борща
Профессионал
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Адрес: Республика Беларусь, г. Минск
Сообщений: 11,444
Репутация: 2785
По умолчанию

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

OS: Win 10 x64
IDE:
Нажмите на изображение для увеличения
Название: screenshot 2019-06-14 001.jpg
Просмотров: 99
Размер:	27.3 Кб
ID:	96961
Человек_Борща вне форума   Ответить с цитированием
Старый 14.06.2019, 22:42   #8
Arigato
СуперПрограммист
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Адрес: Россия РФ Регистрация: 27.07.2008
Сообщений: 13,846
Репутация: 3619
По умолчанию

Да, версия Лазаруса совпадает. Винда 7 x64, но не думаю, что в ней дело. Странно...
__________________
E-Mail: arigato.freelance@gmail.com
Arigato вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная кодировка в PHP (конфликт с кодировкой html) jihot HTML и CSS 1 12.01.2015 01: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


22:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.