OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 14:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Поддержка юникода в BlackBox1.6rc5
СообщениеДобавлено: Вторник, 08 Май, 2007 12:22 
Аватара пользователя

Зарегистрирован: Воскресенье, 04 Декабрь, 2005 16:15
Сообщения: 15
Откуда: Украина, Мариуполь
Несмотря на "BlackBox 1.6 is full Unicode support" столкнулся с рядом глюков. Например, при двойном щелчке на русскоязычном слове оно не выделяется целиком; диалог Find/Replace не ищет русскоязычные слова без учета регистра; поиск без учета регистра в файлах помощи работает странно - например не обрабатывает букву 'Т'; и т.п.
Кроме того в каждом модуле поддержка юникода реализуется по своему, повторяя разными способами одну и ту же функциональность. Под юникодом подразумевается представление то в UTF8, то в UTF16. Нет единого механизма.
Из более абстрактных проблем - например, не соблюдаются рекомендации стандарта юникода на коды символов разрыва линии и параграфа.
Очевидно, что поддержка юникода даже в 1.6 требует серьезной доработки, в связи с чем предлагаю обсудить следующие впоросы:
1) Определится с внутренним способом представления юникодных символов: UTF8, UTF-16LE, UTF-16BE, UTF-32BE, UTF-32LE.
2) Для поддержки юникода необходимо будет либо изменять существующие процедуры/функции(например CAP, Strings.Lower) нарушая спецификации, либо вводить дополнительные с другими именами.
3) Способ реализации единого, сквозного механизма работы с юникодом.

Что скажете, господа?


Последний раз редактировалось Кривохатько С.А. Вторник, 08 Май, 2007 13:47, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 08 Май, 2007 13:40 
Аватара пользователя

Зарегистрирован: Воскресенье, 04 Декабрь, 2005 16:15
Сообщения: 15
Откуда: Украина, Мариуполь
По отдельности эти вопросы уже обсуждались. Но в 1.6rc5 изменили формат объектного файла и убрали некоторые подсистемы, и в результате требуется переделка/перекомпиляция существующего кода. Народ отнесся вполне терпимо к этому. Т.е. имеем удобный момент для внесения изменений/дополнений.
Иначе придется отложить реализацию юникода до какого-нибудь BlackBox 2.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 1.6
СообщениеДобавлено: Вторник, 08 Май, 2007 16:01 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
нужно сообщать Оминк обо всем этом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 08 Май, 2007 22:38 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
ББ не поддерживает UTF!
С двухбайтовым CHAR имеется фактически безальтернативный UCS2...

А изменения действительно надо "добивать" сразу.

Мы потихоньку отсылаем Оминк отчеты о тестировании.
В частности, сейчас пытаемся решить проблему с нац. идентификаторами, на которые завязались школы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 08 Май, 2007 23:18 
Аватара пользователя

Зарегистрирован: Воскресенье, 04 Декабрь, 2005 16:15
Сообщения: 15
Откуда: Украина, Мариуполь
Илья Ермаков писал(а):
ББ не поддерживает UTF!
С двухбайтовым CHAR имеется фактически безальтернативный UCS2...


Да, согласен, его реализовать будет проще, хоть он и считается устаревшим. Хотя к размерности CHAR это отношения не имеет. Просто в UTF-16 допускаются комбинации из двух CHAR, а в UCS2 - нет. UCS-2 можно считать подмножеством UTF-16 (UTF-16 без суррогатных пар).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 08 Май, 2007 23:25 
Аватара пользователя

Зарегистрирован: Воскресенье, 04 Декабрь, 2005 16:15
Сообщения: 15
Откуда: Украина, Мариуполь
Илья Ермаков писал(а):
Мы потихоньку отсылаем Оминк отчеты о тестировании.
В частности, сейчас пытаемся решить проблему с нац. идентификаторами, на которые завязались школы...


Такими темпами, как сейчас, долго будем ждать. С момента релиза 1.5 уже скоро два года будет, а там только по юникоду всё ещё работы непочатый край.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 02:09 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Кривохатько С.А. писал(а):
UCS-2 можно считать подмножеством UTF-16 (UTF-16 без суррогатных пар).

Просто в порядке уточнения. ucs2 - набор символов, а utf-8,16,etc. - кодировки. Так что одно никак не может быть подмножеством другого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 10:06 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Ivor писал(а):
Просто в порядке уточнения. ucs2 - набор символов, а utf-8,16,etc. - кодировки. Так что одно никак не может быть подмножеством другого.

Не ucs2 - тоже кодировка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 11:18 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Есть предложение переходить на UTF16, не дожидаясь OM Inc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 14:23 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
GUEST писал(а):
Есть предложение переходить на UTF16, не дожидаясь OM Inc.

Каким образом? utf-16 - кодировка с переменной длиной символов, в отличие от ucs-2. Только если библиотеку писать, но ни в коем случае не на уровне компилятора!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 23:02 

Зарегистрирован: Среда, 28 Февраль, 2007 00:08
Сообщения: 142
Откуда: Нижний Новгород
GUEST писал(а):
Есть предложение переходить на UTF16, не дожидаясь OM Inc.

Тут есть проблема - шрифтов которые поддреживают даже 2 байт юникод не так уж много, а 4 байт должно быть еще меньше. для хранения в оперативке подходят ucs2 ucs4 utf32 и, возможно, ucs32(если кто знает, что это за зверь такой). поддержка юникода сейчас, насколько понял, сводится к ucs2 и utf8. А utf16- ни рыба, ни мясо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 09 Май, 2007 23:39 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Ivor писал(а):
GUEST писал(а):
Есть предложение переходить на UTF16, не дожидаясь OM Inc.

Каким образом? utf-16 - кодировка с переменной длиной символов, в отличие от ucs-2. Только если библиотеку писать, но ни в коем случае не на уровне компилятора!
У себя на компьютере я символы с переменной длиной в кодировке UTF16 не наблюдаю, хотя саму её задать могу. Отсюда вывод - если кого-то интересует как можно реализовать кодировку с переменной длиной символов расскажите как её установить в системе. Для себя я такой необходимости не вижу.
Впрочем, это детали, которые не должны заслонять собой главного. Принципиальные противники перехода на использование единого формата символов внутри BlackBox имеются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 00:16 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
GUEST, а вы символы за пределами первых 64K не пробовали? И ччто значит "единый формат символов"? А сейчас CHAR не единый?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 00:23 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
batyrmastyr, шрифты - не самая большая проблема. Для большинства языков хватит и двубайтовых символов. К тому же LONGCHAR - явный перерасход памяти, более чем в два раза.

Да, ещё есть вопрос совместимости с дрругими оберонами. Двухбайтовый CHAR есть в gpcp и active oberon, а четырёхбайтовый?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 01:20 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Как Вы полагаете войдут символы за пределом первых 64К в диапозон типа CHAR? С большой степенью вероятности могу предсказать, что нет. Поэтому предлагаю перенести диапозон в которым коды символов не укладываются в фиксированные 16 разрядные значения UTF16-кодов в область, которую ей соответствует в диапазоне 32 разрядных значений UTF32-кодов. После чего можно будет сказать, что собственно у самого UTF16 все значения лежат в диапозоне типа CHAR, а для остальных существует UTF32 и тип LONGCHAR. Если понадобится последний, в чем я очень сомневаюсь пока. На таких условиях единый тип сейчас - CHAR.
PS.
Ivor писал(а):
GUEST, а вы символы за пределами первых 64K не пробовали?
Вы имеете в виду какой-то конкретно? А Вы пробовали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 05:12 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
GUEST писал(а):
Как ... - CHAR.

Видимо у меня что-то с восприятием. Я просто не понял этого абзаца :(

GUEST писал(а):
Вы имеете в виду какой-то конкретно? А Вы пробовали?

Да это в стандарте прописано! utf-16 ничем не отличается от utf-8 по своей сути. Просто "как есть" он передаёт первые 64k символов, вместо первых 256и.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 15:12 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
ucs2... собственно, это то, что применяется в винде и Яве. :) Utf-8 поддерживать, конечно можно попробовать, однако не на внутренных структурах, а только на экспорт. Иначе слишком много придется переделывать для поддержки многобайтовых кодировок. Кроме того, CHAR фиксирован в стандарте языка, как Unicode. Из такого определения предположить что-то кроме ucs2 достаточно сложно.

Да, и не следует забывать, что CHAR делался именно для совместимости с Явой.

Кстати, Бутылка работает на UTF-8, никото не смотрел внутрь, на реализацию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 15:17 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Да и de facto, сейчас достаточное распространие имеют (во всяком случае для обычных языков) ucs2, на уровне ОС - в винде и UTF-8 в интеренете (стандарт XML, и, как следствие, XHTML, остальное в нём допускается только для обратной совместимости, на сколько я помню). Также в последнее время UTF-8 настоятельно рекомендуется для использования в качестве локали Linux.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 17:24 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Ivor писал(а):
Да это в стандарте прописано!
Спасибо, я спрашивал о другом.
Ivor писал(а):
utf-16 ничем не отличается от utf-8 по своей сути. Просто "как есть" он передаёт первые 64k символов, вместо первых 256и.
Когда я писал пост viewtopic.php?p=4656#4656 я такое различие усматривал. Отсутствие данного различения возможно в рамках более широкого обсуждения, чем то которое присутствует здесь. Предлагаю вынести его в отдельную тему (о стандарте UTF), а в этой их различать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 17:51 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Борис Рюмшин писал(а):
Кроме того, CHAR фиксирован в стандарте языка, как Unicode. Из такого определения предположить что-то кроме ucs2 достаточно сложно.
Перепутана причина и следствие. Вот если Unicode представляется исключительно типом CHAR, тогда еще соглашусь. Но даже в этом случае использование ограниченного 16-битными кодами символов UTF16 не представит большой сложности. Пусть Ivor поправит, если я опять что напутал.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB