Page 2 of 2

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Mon 28 Jul, 2014 18:19
by DrKnS

Latest post of the previous page:

Размер сигнатуры - он как бы постоянный и прибит гвоздями к кодовой странице: 2 байта на UTF16 LE/BE, 3 на UTF8.
В ближайшее N десятков лет это вряд ли изменится, поэтому не вижу проблем сделать в плагине if (utf8) ptr += 3;

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Tue 29 Jul, 2014 06:36
by Skirda
DrKnS wrote:Так мы хотим преобразовать к юникоду или таки определить кодовую страницу?
Корректно прочитать файл (в случае TempPanel, FarCmds), корректно показать в редакторе вывод программ (FarCmds).
DrKnS wrote:Размер сигнатуры - он как бы постоянный и прибит гвоздями к кодовой странице: 2 байта на UTF16 LE/BE, 3 на UTF8.
В ближайшее N десятков лет это вряд ли изменится, поэтому не вижу проблем сделать в плагине if (utf8) ptr += 3;
Это понятно. Но, для случая OEM/ANSI размер сигнатуры равен нулю.

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Tue 29 Jul, 2014 22:42
by DrKnS
Но, для случая OEM/ANSI размер сигнатуры равен нулю.
Да он и для юникода может быть равен нулю при отсутствии оной.
Логично, offset нужен.

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Wed 30 Jul, 2014 21:33
by zg
Skirda wrote:

Code: Select all

    DWORD Flags;
как бы в целом в апи принято:
typedef unsigned __int64 UCDFLAGS;
UCDFLAGS Flags;

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Thu 31 Jul, 2014 04:48
by Skirda
zg wrote:typedef unsigned __int64 UCDFLAGS;
UCDFLAGS Flags;
Изменил.

Re: GetCPBuffer - функция определения кодовой страницы

Posted: Thu 31 Jul, 2014 07:52
by DrKnS
Skirda wrote:UCDFLAGS Flags;
А почему "UCD"?
Насколько я понимаю, надо что-то типа обертки над filestr::GetFileFormat, а там далеко не только UCD.