Russian Qt Forum

Qt => Общие вопросы => Тема начата: ossa от Июль 24, 2009, 07:35



Название: Кодировка файлов. UTF16/Ascii + как следить за изменениями.
Отправлено: ossa от Июль 24, 2009, 07:35
Здравствуйте.
Есть некая железка. Ее драйвер пишет статистику в файл. В зависимости от системной кодировки. Так В win файл в UTF16 в линуксе - UTF8, если вин не юникодный - Ascii.
Первый вопрос: Есть ли способ определить кодировку файла, для дальнейшего разбора? Сейчас я просто смотрю на BOM и исходя из этого делаю или fromUtf16 или fromAscii, но чувствую, что метод не совсем корректен, поскольку UTF16 может быть как Big, так и Small.

Второй вопрос: Есть ли способ следить за изменениями в файле и директории? То есть, драйвер дописывает в конец файла строчку, мне ее надо подхватить. Так же если создается новый файл в директории, можно ли узнать об этом не перечитывая (сигнал там какой)?

Все это нужно для больничного проекта. Я сам не совсем программист, точнее совсем не программист, а очень даже хирург, поэтому если вопросы сильно глупые не пинайте сильно :)


Название: Re: Кодировка файлов. UTF16/Ascii + как следить за изменениями.
Отправлено: Rcus от Июль 24, 2009, 08:40
1. BOM позволяет различать любую трансформацию юникода, будь то UTF32LE/BE UTF16LE/BE или даже UTF8
2.  #include <QFileSystemWatcher>


Название: Re: Кодировка файлов. UTF16/Ascii + как следить за изменениями.
Отправлено: ossa от Июль 24, 2009, 08:52
Цитировать
2.  #include <QFileSystemWatcher>
Спасибо, посмотрю.
А вот:
Цитировать
BOM позволяет различать любую трансформацию юникода, будь то UTF32LE/BE UTF16LE/BE или даже UTF8
Немного непонятно.
То есть мне все равно придется читать этот бом в начале файла и дальше уже составлять switch из вариантов?
А fromUTF16 сам различит BE/LE? на сколько понял BOM нужно отбрасывать при передаче аргумента этому методу.
Хотя я пока не встречал машину с обратным порядком, но черт ее знает...


Название: Re: Кодировка файлов. UTF16/Ascii + как следить за изменениями.
Отправлено: Rcus от Июль 24, 2009, 08:55
hm Assistant -> QTextStream search:bom


Название: Re: Кодировка файлов. UTF16/Ascii + как следить за изменениями.
Отправлено: ossa от Июль 24, 2009, 09:52
Спасибо. НА ТекстСтрим как-то не обратил внимания.