Чтение текстовых UTF-16 файлов

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Re: Чтение текстовых UTF-16 файлов

Сообщение SSerge » 28.05.2012 05:11:21

bigbo
Прочитал через readln - вывел в шестнадцатиричном представлении считанное - сравнил с оригиналом
Применил функцию конверсии - вывел в шестнадцатиричном виде - сравнил с тем что должно получиться.

Иначе причин "левой" конверсии не найдешь. Когда найдется конкретный виновник сбоя, тогда уже можно будет пытаться искать какие либо пути решения.

Навскидку - наблюдаются операции прямого чтения в WideString. Гм. В официально неподдерживаемый компилятором тип строк. Причем, сильнейшим образом зависящий от корректности определения локали операционной системы и функций преобразования, зависящих от этой самой локали, которые периодически авторы компилятора имеют обыкновение приводить в неработоспособный вид и долго не восстанавливать. Читайте файл локаленезависимым образом, если что. Вплоть до открытия его в двоичном виде и побайтного считывания, если другим путем правильность преобразований при чтении не обеспечивается. Лишь только когда убедитесь, что считанная в память информация не испорчена, можно искать остальные источники искажений.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Чтение текстовых UTF-16 файлов

Сообщение hinst » 01.06.2012 00:50:11

насколько я знаю, в FPC & Lazarus юникод вообще плохо запилен. Там наверно 10% от стандарта реализовано. Недавно видел пост на англоязычном форуме на эту тему. Там вроде предлагали с помощью какой-то библиотеки ICU4C юникодный текст загружать. Не знаю, в каком виде она его загружает, но вроде там юникод реализован и она кроссплатформенная
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Чтение текстовых UTF-16 файлов

Сообщение alexs » 01.06.2012 06:54:02

В чём проблема?
Считать файл как последоватьельность байт, а потом байты превратить в строку?
Stream.Read()
System.Move
?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.

Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru