Кодировка в переменной среды Windows XP
Модератор: Модераторы
Кодировка в переменной среды Windows XP
Здравствуйте.
Присваиваю Edit значение переменной GetEnvironmentVariableUTF8('APPDATA'). В переменной содержится имя пользователя на кириллице. В Windows 7 и выше не выявлено никаких проблем, однако в Windows XP (Home Edition SP3) вместо кириллицы каракули неизведанной этимологии.
Тупым перебором совершались попытки перекодировать SysUtils.GetEnvironmentVariable с помощью функций CP850ToUTF8, CP866ToUTF8, CP1250ToUTF8, CP1251ToUTF8, CP1252ToUTF8, AnsiToUTF8. Результат ноль.
Как в Windows XP корректно получить значение в Edit из переменной среды?
Присваиваю 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 10:38:38, всего редактировалось 1 раз.
WinCPToUTF8
UTF8ToWinCP
UTF8ToWinCP
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
кои8р пробовал?
xcod писал(а):WinCPToUTF8
UTF8ToWinCP
Тоже пробовал, забыл упомянуть
Добавлено спустя 7 минут 46 секунд:
Лекс Айрин писал(а):кои8р пробовал?
GuessEncoding() показывает CP1251, однако CP1251ToUTF8 дает каракули (AnsiToUTF8 тоже).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
модуль LConvEncoding подключен?
Little_Roo писал(а):модуль LConvEncoding подключен?
Угу
У вас нет необходимых прав для просмотра вложений в этом сообщении.
А функция GetUserDir как работает?
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 и где лежит)
Есть еще GetAppConfigDir(False).
Ustas писал(а):Есть еще GetAppConfigDir(False).
Ведет в Local Settings.
Мне необходимо получить полный путь к к файлу списка информационных баз 1С ibases.v8i (сейчас на Windows XP это C:\Documents and Settings\Инна\Application Data\1C\1CEStart , но программа может запускаться на разных версиях Windows и как правило с кириллицей в системных путях)
А такой вариант: http://www.webdelphi.ru/2010/02/shfolder-eshhyo-odin-sposob-kak-poluchit-puti-k-specialnym-direktoriyam/
XP нет, а то бы сам попробовал...
XP нет, а то бы сам попробовал...
Ребята, всем спасибо. Этот косяк воспроизводится только при запуске из IDE и не наблюдается в рантайме.
