bigbo
Прочитал через readln - вывел в шестнадцатиричном представлении считанное - сравнил с оригиналом
Применил функцию конверсии - вывел в шестнадцатиричном виде - сравнил с тем что должно получиться.
Иначе причин "левой" конверсии не найдешь. Когда найдется конкретный виновник сбоя, тогда уже можно будет пытаться искать какие либо пути решения.
Навскидку - наблюдаются операции прямого чтения в WideString. Гм. В официально неподдерживаемый компилятором тип строк. Причем, сильнейшим образом зависящий от корректности определения локали операционной системы и функций преобразования, зависящих от этой самой локали, которые периодически авторы компилятора имеют обыкновение приводить в неработоспособный вид и долго не восстанавливать. Читайте файл локаленезависимым образом, если что. Вплоть до открытия его в двоичном виде и побайтного считывания, если другим путем правильность преобразований при чтении не обеспечивается. Лишь только когда убедитесь, что считанная в память информация не испорчена, можно искать остальные источники искажений.
Чтение текстовых UTF-16 файлов
Модератор: Модераторы
насколько я знаю, в FPC & Lazarus юникод вообще плохо запилен. Там наверно 10% от стандарта реализовано. Недавно видел пост на англоязычном форуме на эту тему. Там вроде предлагали с помощью какой-то библиотеки ICU4C юникодный текст загружать. Не знаю, в каком виде она его загружает, но вроде там юникод реализован и она кроссплатформенная
