Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 19.10.2023
Сообщений: 48

UTF-16LE to Win1251

20.01.2026, 16:18. Показов 3995. Ответов 69

Студворк — интернет-сервис помощи студентам
䠠䑉⠠畈慭湉整晲捡⁥敄楶散⥳ UTF-16LE - https://www.online-decoder.com/ru дал ответ.
Устройства HID (Human Interface Devices) - Win1251

Две строки, как верхнюю строку конвертировать UTF-16LE в Win1251, чтоб получилась 2я строка?

ИИ написал мне функу преобразования для проверки, но она вылетает с ошибкой

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function StringOfUtf16(const Bytes: TBytes): string;
var
  i: Integer;
begin
  SetLength(Result, Length(Bytes) div 2);
  for i := 0 to High(Bytes) do
    if (i mod 2 = 0) then
      Result[i shr 1] := Char(Bytes[i] or $FF00); // Исправление для UTF-16LE <<<вылет в отладчик
end;
 
procedure TForm1.BitBtn2Click(Sender: TObject);
var
  Utf16Bytes: TBytes; // Байты в формате UTF-16LE
  Utf8Bytes: TBytes;
  AnsiResult: AnsiString;
begin
  // Пример данных в UTF-16LE (например, "Hello")
  Utf16Bytes := [$48, $00, $65, $00, $6C, $00, $6C, $00, $6F, $00];
 
  // Сначала преобразуем UTF-16LE в UTF-8
  Utf8Bytes := TEncoding.UTF8.GetBytes(StringOfUtf16(Utf16Bytes));
 
  // Затем преобразуем UTF-8 в ANSI (CP1251)
  AnsiResult := TEncoding.ANSI.GetString(Utf8Bytes);
 
  // Отображаем результат
  ShowMessage(AnsiResult);
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2026, 16:18
Ответы с готовыми решениями:

Разные кодировки файлов (ASCII, UTF-8, UTF-16)
Привет всем! Нужно написать программу поиска файлов, содержащих заданную строку. Т.е....

IBDatabase>CharacterSet>win1251=Error!!!
Уважаемые, подскажите пожалуйста! Вылетает ошибка, ругается на кодировку. Создаю приложение для...

Преобразовать текст из кодировки Win1251 в DOS-866
Господа программисты, Вашему вниманию предлагаю следующий код (юнит выложен полностью): unit...

69
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,502
24.01.2026, 01:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Excalibug Посмотреть сообщение
А вот как не крути, показывает кириллицу только если через PAnsiChar.
Скриншот покажи, как у Rius, чтобы были видны и окно программы и сама Delphi с кодом.
0
1 / 1 / 0
Регистрация: 19.10.2023
Сообщений: 48
24.01.2026, 02:25  [ТС]
Скрин
Миниатюры
UTF-16LE to Win1251  
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,502
24.01.2026, 07:28
Excalibug, теперь, правой кнопкой мыши на "SetupDIGetDeviceRegistryProperty" и выбрать "Find Declaration", что откроется тоже покажи скриншот. Надо проверить предположение.
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 08:46
Цитата Сообщение от Excalibug Посмотреть сообщение
Скрин
Дай проект, посмотрим.
Однажды Новичок захотел сделать X. Но поскольку Новичок был новичком, X с ходу у него сделать не получилось...
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
24.01.2026, 11:36
если слона в комнате никто не видит, но он там есть
Миниатюры
UTF-16LE to Win1251  
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,502
24.01.2026, 15:07
Есть подозрение, что в модуле SetupApi.pas идёт обращение к ansi-версиям функций, значит, и для приёма результата нужно использовать AnsiString.
0
Эксперт .NET
 Аватар для Rius
13824 / 7896 / 1707
Регистрация: 25.05.2015
Сообщений: 23,965
Записей в блоге: 14
24.01.2026, 15:08
Тогда зачем бы ему перекодирование понадобилось?
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 15:16
Цитата Сообщение от AzAtom Посмотреть сообщение
Есть подозрение, что в модуле SetupApi.pas идёт обращение
А где этот модуль взять? У меня есть тут только JvSetupApi.pas из JEDI/JVCL.
Все функции setupapi в нём есть.
Вложения
Тип файла: 7z JvSetupApi.7z (40.9 Кб, 3 просмотров)
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,502
24.01.2026, 15:18
Однако, это уже не подозрение - проглядел модуль SetupApi.pas, прикреплённый ТС'ом. Там действительно, идёт обращение к ansi-версиям функций.

Добавлено через 44 секунды
Verevkin, вот здесь он прикрепил.
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 15:20
Цитата Сообщение от AzAtom Посмотреть сообщение
Verevkin, вот здесь он прикрепил.
Там нет импорта юникодной версии этой функции, я посмотрел.



А в JvSetupApi.pas - есть.



Вот где собака порылась.
Классический пример XYZ.

Если бы аффтар прицепил тестовый проект прям к вопросу, проблема была бы найдена гораздо раньше. Но он не захотел.

0
1 / 1 / 0
Регистрация: 19.10.2023
Сообщений: 48
24.01.2026, 16:18  [ТС]
Да, так и есть.
Миниатюры
UTF-16LE to Win1251  
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 16:21
Цитата Сообщение от Excalibug Посмотреть сообщение
Да, так и есть.
Ну так добавь в этот модуль импорт юникодных функций, ёмаё.
0
Эксперт .NET
 Аватар для Rius
13824 / 7896 / 1707
Регистрация: 25.05.2015
Сообщений: 23,965
Записей в блоге: 14
24.01.2026, 16:22
Excalibug,
Если функция возвращает анси, зачем вы эту тему создали по перекодированию из юникода в анси?
Почему не сменить функции на юникодные W?
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 16:26
Цитата Сообщение от Rius Посмотреть сообщение
Почему не сменить функции на юникодные W?
У него модуль из времён Delphi 7, там нет юникодовых функций. Но их в него можно добавить:

0
Эксперт .NET
 Аватар для Rius
13824 / 7896 / 1707
Регистрация: 25.05.2015
Сообщений: 23,965
Записей в блоге: 14
24.01.2026, 16:27
10-ая же дельфя:
Цитата Сообщение от Excalibug Посмотреть сообщение
10.3.3

А, взял модуль из старых времён?...
0
1 / 1 / 0
Регистрация: 19.10.2023
Сообщений: 48
24.01.2026, 16:28  [ТС]
Возьму модуль веревкина, посмотрим.... Дельфя 10я, но она не комплектуется SetupAPI. А вопрос изначально был от том, что как конвертировать UTF16LE в кириллицу
0
Эксперт .NET
 Аватар для Rius
13824 / 7896 / 1707
Регистрация: 25.05.2015
Сообщений: 23,965
Записей в блоге: 14
24.01.2026, 16:31
У меня меня C# тоже не комплектуется, и ничего.
Берём описание функций WinAPI и комплектуем вручную.
Цитата Сообщение от Excalibug Посмотреть сообщение
что как конвертировать UTF16LE в кириллицу
Так зачем? И так же анси вашим старым модулем возвращается.
0
Нарушитель
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,934
24.01.2026, 16:33
Цитата Сообщение от Excalibug Посмотреть сообщение
Возьму модуль веревкина, посмотрим....
Этот модуль тащит за собой другие модули из пакета JCL/JVCL.



Так можно, но если тебе нужно всего несколько функций, из можно просто накопипастить себе в исходник и не заморачиваться с чужими модулями ВАЩЕ.
0
1 / 1 / 0
Регистрация: 19.10.2023
Сообщений: 48
24.01.2026, 16:35  [ТС]
Так зачем? И так же анси вашим старым модулем возвращается.
Вот, изначально была проблема в этом, не знал как самому побороть. В итоге поборол сам, закидали камнями. Разберемся, главное понял где основные ошибки.
0
Эксперт .NET
 Аватар для Rius
13824 / 7896 / 1707
Регистрация: 25.05.2015
Сообщений: 23,965
Записей в блоге: 14
24.01.2026, 16:37
Поборол - это когда разобрался и сделал по уму, а не кучу костылей (ещё и не рабочих) понаставил

Проблема-то оказалась - не написать конвертирование в анси, а получить сразу юникод из винапи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2026, 16:37

Изменение кодировки Win1251 в UTF8 (необычный случай)
Всем привет! ... обычно кодировка проблем не доставляла, а вот недавно столкнулся с проблемой...

Очередная проблема Sqlite3 + win1251
Уважаемые товарищи. Вопрос жизни и смерти! Прошу помочь с проблемой чтения кириллицы из sqlite3...

соханение в бокнот в кодировке UTF-8
if SaveTextFileDialog1.Execute then Memo1.Text := AnsiToUtf8(Memo1.Text); ...

Перекодировать текст в UTF-8
Подскажите как можно перевести введённій в ТЕдит текст в кодировку UTF-8?

Кодировки OEM, MAC, UTF-8, КОИ8,ISO 8859-5
Здравствуйте. Вот дописываю свою программу и у меня возникла следующая проблема. Надо организовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru