Кодировка в переменной среды Windows XP

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

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

Кодировка в переменной среды Windows XP

Сообщение RunetX » 14.03.2016 11:32:05

Здравствуйте.

Присваиваю Edit значение переменной GetEnvironmentVariableUTF8('APPDATA'). В переменной содержится имя пользователя на кириллице. В Windows 7 и выше не выявлено никаких проблем, однако в Windows XP (Home Edition SP3) вместо кириллицы каракули неизведанной этимологии.

Тупым перебором совершались попытки перекодировать SysUtils.GetEnvironmentVariable с помощью функций CP850ToUTF8, CP866ToUTF8, CP1250ToUTF8, CP1251ToUTF8, CP1252ToUTF8, AnsiToUTF8. Результат ноль.

Как в Windows XP корректно получить значение в Edit из переменной среды?
Последний раз редактировалось RunetX 15.03.2016 11:38:38, всего редактировалось 1 раз.
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50

Re: Кодировка в переменной среды Windows XP

Сообщение xcod » 14.03.2016 11:59:45

WinCPToUTF8
UTF8ToWinCP
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Кодировка в переменной среды Windows XP

Сообщение Лекс Айрин » 14.03.2016 12:02:25

кои8р пробовал?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Кодировка в переменной среды Windows XP

Сообщение RunetX » 14.03.2016 15:03:25

xcod писал(а):WinCPToUTF8
UTF8ToWinCP


Тоже пробовал, забыл упомянуть

winxpenc.png


Добавлено спустя 7 минут 46 секунд:
Лекс Айрин писал(а):кои8р пробовал?


GuessEncoding() показывает CP1251, однако CP1251ToUTF8 дает каракули (AnsiToUTF8 тоже).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50

Re: Кодировка в переменной среды Windows XP

Сообщение Little_Roo » 14.03.2016 17:38:01

модуль LConvEncoding подключен?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Кодировка в переменной среды Windows XP

Сообщение RunetX » 15.03.2016 11:36:15

Little_Roo писал(а):модуль LConvEncoding подключен?


Угу
У вас нет необходимых прав для просмотра вложений в этом сообщении.
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50

Re: Кодировка в переменной среды Windows XP

Сообщение sts » 15.03.2016 18:53:37

sts
постоялец
 
Сообщения: 455
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Кодировка в переменной среды Windows XP

Сообщение Ustas » 16.03.2016 14:58:11

А функция GetUserDir как работает?
Ustas
постоялец
 
Сообщения: 153
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Кодировка в переменной среды Windows XP

Сообщение RunetX » 18.03.2016 11:21:50

sts писал(а):http://freepascal.ru/forum/viewtopic.php?t=6031&p=44277
????

Много нового узнал, но увы, получить в нормальной кодировке значение так и не вышло.
Я новичок в Lazarus и программировании. Ткните, пожалуйста, поконкретней.

P. S. Windows Home Edition (когда-то вроде попадался момент с урезкой кодировок в хомяке)

Добавлено спустя 4 минуты 34 секунды:
Ustas писал(а):А функция GetUserDir как работает?


CP1251ToUTF8(GetUserDir) - все ок

Просто хотел брать значение %APPDATA%, чтобы не выяснять версию Windows (AppData или Application Data и где лежит)
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50

Re: Кодировка в переменной среды Windows XP

Сообщение Ustas » 18.03.2016 13:48:58

Есть еще GetAppConfigDir(False).
Ustas
постоялец
 
Сообщения: 153
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Кодировка в переменной среды Windows XP

Сообщение RunetX » 18.03.2016 14:20:28

Ustas писал(а):Есть еще GetAppConfigDir(False).


Ведет в Local Settings.

Мне необходимо получить полный путь к к файлу списка информационных баз 1С ibases.v8i (сейчас на Windows XP это C:\Documents and Settings\Инна\Application Data\1C\1CEStart , но программа может запускаться на разных версиях Windows и как правило с кириллицей в системных путях)
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50

Re: Кодировка в переменной среды Windows XP

Сообщение Ustas » 18.03.2016 16:24:48

А такой вариант: http://www.webdelphi.ru/2010/02/shfolder-eshhyo-odin-sposob-kak-poluchit-puti-k-specialnym-direktoriyam/
XP нет, а то бы сам попробовал...
Ustas
постоялец
 
Сообщения: 153
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Кодировка в переменной среды Windows XP

Сообщение RunetX » 18.03.2016 17:09:06

Ребята, всем спасибо. Этот косяк воспроизводится только при запуске из IDE и не наблюдается в рантайме.
RunetX
незнакомец
 
Сообщения: 6
Зарегистрирован: 14.03.2016 11:20:50


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot] и гости: 237

Рейтинг@Mail.ru