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

Хотите говорить о Far и не знаете, куда обратиться?
Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 11:26

Привет!

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

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

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

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

Вадим

User avatar
zg
zero-gravity
Posts: 5205
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

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

Postby zg » Fri 18 Mar, 2011 11:30

Vadimka wrote:Надо бы сделать...
каков бюджет?

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 11:38

Да никакой :-)
Это просто идея/предложение.
Конвертер UTF16<->UTF32 могу предоставить (C++)
Вадим

User avatar
zg
zero-gravity
Posts: 5205
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 40 times
Contact:

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

Postby zg » Fri 18 Mar, 2011 11:43

т.е. «надо» — это уже просто предложение…

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 11:49

Я же написал - надо бы... :)

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia

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

Postby Centaur » Fri 18 Mar, 2011 14:31

В мире free software слова «надо бы…» должны восприниматься как «ребята, я собираюсь сделать…; если кто-то это уже делает или знает, почему этого делать не надо — срочно сообщите». Так что — вроде бы ни у кого возражений нет, присылай патч.

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 14:50

Я не настолько хорошо знаю коды FAR-овских Viewer и Editor, чтобы это написать самому...
Но помочь могу, если кто-то за это возьмется.

Вадим

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

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

Postby DrKnS » Fri 18 Mar, 2011 14:59

Vadimka wrote:Я не настолько хорошо знаю коды FAR-овских Viewer и Editor, чтобы это написать самому...

А их никто хорошо не знает :ha:
Смотри на UTF16 и делай по аналогии.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Postby Max Rusov » Fri 18 Mar, 2011 15:06

Как Вы это собрались делать, если FAR работает с wchar?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Postby NightRoman » Fri 18 Mar, 2011 15:32

Из википедии:
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.

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

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

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

Postby DrKnS » Fri 18 Mar, 2011 15:35

Как Вы это собрались делать, если FAR работает с wchar?


UTF32 без потерь конвертируется в UTF16 с суррогатными парами.
Фар суррогаты не понимает, да, так что пара будет обрабатываться как два отдельных символа.
Навигацию по таким строкам, в принципе, можно исправить когда-нибудь.

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

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 15:36

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

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

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

Postby NightRoman » Fri 18 Mar, 2011 15:40

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

Все замечательно. Но зачем это надо? Включая "идти впереди". Просто так прикола ради? Вряд ли кто будет это делать, есть куда интереснее и полезнее задачки в Фаре у всех, я почему-то уверен.

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 15:47

Чтобы избавится от суррогатных пар, которые ой как мешают жить программистам... :-)

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 15:56

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

Vadimka
Posts: 12
Joined: Fri 18 Mar, 2011 11:12

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

Postby Vadimka » Fri 18 Mar, 2011 16:02

В целом, идея такова:

Смотрим и анализируем файл. Пытаемся понять, каков он - UTF-32 или нет (практически 99% гарантии определения). Если UTF-32, то сначала преобразуем в UTF-16 и работаем в уже имеющемся FAR-овском редакторе или вьювере. Если в редакторе, то при сохранении обратно перекодируем из UTF-16 в UTF-32.

Вадим


Return to “Обсуждение Far Manager”

Who is online

Users browsing this forum: No registered users and 3 guests