Page 1 of 2

Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 11:26
by Vadimka
Привет!

Во Viewer и Editor в версии 2.0 неправильно поддерживаются кодировки UTF-32 Little Endian и Big Endian.

Надо бы сделать...

Скоро все символы будут, как минимум, 32 бита :-)

Память на современных компах большая, её не жалко. Зато в UTF-32 нет никаких "разноразмерных" последовательностей, которые есть в UTF-8 и также в UTF-16.
Все символы - 32 бита! Красота!

Вадим

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 11:30
by zg
Vadimka wrote:Надо бы сделать...
каков бюджет?

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 11:38
by Vadimka
Да никакой :-)
Это просто идея/предложение.
Конвертер UTF16<->UTF32 могу предоставить (C++)
Вадим

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 11:43
by zg
т.е. «надо» — это уже просто предложение…

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 11:49
by Vadimka
Я же написал - надо бы... :)

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 14:31
by Centaur
В мире free software слова «надо бы…» должны восприниматься как «ребята, я собираюсь сделать…; если кто-то это уже делает или знает, почему этого делать не надо — срочно сообщите». Так что — вроде бы ни у кого возражений нет, присылай патч.

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 14:50
by Vadimka
Я не настолько хорошо знаю коды FAR-овских Viewer и Editor, чтобы это написать самому...
Но помочь могу, если кто-то за это возьмется.

Вадим

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 14:59
by DrKnS
Vadimka wrote:Я не настолько хорошо знаю коды FAR-овских Viewer и Editor, чтобы это написать самому...
А их никто хорошо не знает :ha:
Смотри на UTF16 и делай по аналогии.

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:06
by Max Rusov
Как Вы это собрались делать, если FAR работает с wchar?

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:32
by NightRoman
Из википедии:
http://en.wikipedia.org/wiki/UTF-32/UCS-4
Usage of UTF-32 strings on Windows (where wchar_t is 16 bits) is almost non-existent.

Откуда дровишки? Образования и кругозора ради, расскажите где такие кодировки на практике применяются, и какие мало мальски классические программы это поддерживают.

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:35
by DrKnS
Как Вы это собрались делать, если FAR работает с wchar?
UTF32 без потерь конвертируется в UTF16 с суррогатными парами.
Фар суррогаты не понимает, да, так что пара будет обрабатываться как два отдельных символа.
Навигацию по таким строкам, в принципе, можно исправить когда-нибудь.

А вот отрисовка этого в консоли не взлетит, увы. Только через conemu и т. п.

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:36
by Vadimka
У меня есть хорошо отлаженная библиотека, которая умеет конвертить UTF32<->UTF16 (C++). Да, даже стандартные приложения Windows (типа Notepad/Wordpad) НЕ поддерживают UTF-32. Но кто мешает идти впереди? :-) Я просто боюсь, что сам не потяну коррекцию FAR-овских Viewer/Editor, поскольку недостаточно хорошо знаком с их кодом...

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:40
by NightRoman
Vadimka wrote:У меня есть хорошо отлаженная библиотека, которая умеет конвертить UTF32<->UTF16 (C++). Да, даже стандартные приложения Windows (типа Notepad/Wordpad) НЕ поддерживают UTF-32. Но кто мешает идти впереди? :-) Я просто боюсь, что сам не потяну коррекцию FAR-овских Viewer/Editor, поскольку недостаточно хорошо знаком с их кодом...
Все замечательно. Но зачем это надо? Включая "идти впереди". Просто так прикола ради? Вряд ли кто будет это делать, есть куда интереснее и полезнее задачки в Фаре у всех, я почему-то уверен.

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:47
by Vadimka
Чтобы избавится от суррогатных пар, которые ой как мешают жить программистам... :-)

Re: Поддержка UTF-32 - Viewer/Editor

Posted: Fri 18 Mar, 2011 15:56
by Vadimka
Совершенно очевидно, что при нынешнем развитии компьютеров не нужно будет экономить на размере типа char. Как видите, даже 16 бит оказалось мало, поэтому и появились в UTF-8 и UTF-16 "сурроггаты" (спаренные, строенные...) символы. А UTF32 -линейная структура. Там нет никаких суррогатов. Человечество просто не в состоянии придумать символов больше, чем 2 в 32 степени :-)