OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 10 Май, 2007 19:11 
Аватара пользователя

Зарегистрирован: Воскресенье, 04 Декабрь, 2005 16:15
Сообщения: 15
Откуда: Украина, Мариуполь
По имеющимся результатам обсуждения предлагаю остановится на UCS-2. Дополнительно включить символы, которые были добавлены/изменены с момента принятия UCS-2. Технически - берём (с учетом интервалов) 16ти битные символы и их описания из файла UnicodeData.txt последней версии базы данных юникода:
http://www.unicode.org/Public/5.0.0/ucd/UnicodeData.txt

Преобразование в/из другие способы представления юникода реализуем с помошью отдельных процедур.


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Фактически нужно договориться какие 16-битные последовательности использовать для служебных целей, а не в качестве кодировок каких-либо символов. Тогда можно специально не оговарить какие именно 16-битные символы используются. Мало ли что изменится ещё. Предлагаю брать из диапозона Private Use <0xE000 - 0xF8FF>. Если у кого-то есть информация об использовании этого диапазона для расширения символьного набора просьба сообщить что именно из него используется.


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

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
Маленькая поправка.
В WinNT используется UCS-2, а в Win2000 и WinXP уже полноценный UTF-16.

В принципе, если не ориентироваться на восточный рынок, то UCS-2 самое оно. И символов много, и обрабатывать довольно легко (но есть запрещенные позиции и их нужно правильно обрабатывать, хотябы отфильтровывать или заменять пробелами).

Кстати так как виндовс возвращает юникодные строки в UTF-16 нужно предусмотреть случай когда там есть двухпозиционные символы. С ними тоже нужно будет что-то делать, как и в аналогичной ситуации при декодировании UTF-8 (если символ не находится в пределах первых 64к).

P.S.: я недавно писал модуль для преобразования одних представлений юникода в другие на Oberon-2 (XDS).
Если кто-нибудь составит техзадание (интерфейс модуля и как обрабатывать символы о которых я писал выше), то в свободное время я могу это реализовать.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
alek111 писал(а):
Маленькая поправка.
В WinNT используется UCS-2, а в Win2000 и WinXP уже полноценный UTF-16.

Откуда такая информация?
Я ориентируюсь по Рихтеру - вроде бы полная поддержка Юникода введена только в Win2k, и это - UCS-2 (основным вариантом всех системные функций становятся W-версии, принимающие строки как wchar_t[] - массив двухбайтовых символов).
Или Вы говорите о наличии в системе стандартных функций для обработки UTF?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 15 Август, 2007 10:02 
Аватара пользователя

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
По поводу UCS-2 в WinNT сходу ссылки не нашел (SDK-сейчас тоже нету, а ставить влом), но точно помню что W-версии функций там были.
По поводу UTF-16 в Win2k и WinXP:
http://www.microsoft.com/globaldev/handson/dev/winxpintl.mspx
смотреть раздел Fully Unicode


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

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Илья Ермаков писал(а):
alek111 писал(а):
Маленькая поправка.
В WinNT используется UCS-2, а в Win2000 и WinXP уже полноценный UTF-16.

Я ориентируюсь по Рихтеру - вроде бы полная поддержка Юникода введена только в Win2k, и это - UCS-2

Полная - возможно по таблицам символов. Юникод же как системная кодировка поддерживается в серии NT изначально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 15 Август, 2007 10:24 
Аватара пользователя

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
В WinNT поддержка юникода точно была. У меня на немецкой WnNT с немецкой локалью нормально работали русский OpenOffice и Mozilla, а в Win98 не работали (это я к тому что эти программы не рендерили шрифты самостоятельно).
А UCS-2 потому, что в то время еще никто не думал, что 64к символов будет недостаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поддержка юникода в BlackBox1.6rc5
СообщениеДобавлено: Среда, 15 Август, 2007 12:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Вы всё-таки путаете две разных вещи - поддержка Юникода для пользователя (локали клавиатуры и т.п. - так это и Win98 на китайском был) и кодировка, которую принимает API (т.е. W-версии функций, которые принимают исключительно UCS-2).

W-версии функций были уже и в Win98, но являлись заглушками-пустышками.
W-версии в NT были давно, но что-то тоже было ещё не совсем глако....
Win2k была заявлена как первая полностью юникодовая в линейке Виндов. В ней фактически основные именно W-функции, A-функции выполняют трансляцию в юникод, а затем обращаются к своим W-аналогам (за счёт чего могут работать процентов на 30 медленнее).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 15 Август, 2007 16:12 
Аватара пользователя

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
Ничего я не путаю.

Во первых, то, что строки состоят из двухбайтных символов абсолютно ниочем не говорит. Это может быть как UCS-2 так и UTF-16 (она тоже двухбайтная), они просто обрабатываются немного по разному. Так вот в Win2000 и WinXP строки, состоящие из двухбайтных символов обрабатываются как UTF-16.

Во вторых WinNT 4.0 полноценно поддерживала юникод (то что считалось юникодом на тот момент, а это UCS-2, изначально планировалось поместить все символы в 64к-таблицу). Как я уже писал, НЕМЕЦКАЯ система с НЕМЕЦКОЙ локалью чудно выводила РУССКИЙ текст в меню и диалогах программ которые использовали W-версии системных вызовов. Win98 этим похвастаться не могла. (я живу в германии так что постоянно имею очень много гемороя по этому поводу с программами использующими A-версии, локаль менять не могу, немецкие программы начинают фигню показывать)

Кто такой Рихтер я не знаю, предпочитаю пользоваться официальной документацией. Если ничего не путаю, то в SDK история введения юникода в операционные системы Windows описана довольно подробно. Я бы посмотрел точно, но разворачивать гигабайт всякого мусора очень не хочется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поправка.
СообщениеДобавлено: Среда, 15 Август, 2007 20:35 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
alek111 писал(а):
Маленькая поправка.
В WinNT используется UCS-2, а в Win2000 и WinXP уже полноценный UTF-16.
В принципе, если не ориентироваться на восточный рынок, то UCS-2 самое оно. И символов много, и обрабатывать довольно легко (но есть запрещенные позиции и их нужно правильно обрабатывать, хотябы отфильтровывать или заменять пробелами).

Те позиции которые могут служить для отображения символов не являются запрещенными по определению. Относительно остальных позиций надо договориться о их использовании для каких-либо внутренних задач. Тот диапозон, о котором я писал выше в число запрещенных по UCS-2 входит? Если да, то он и подойдет.
alek111 писал(а):
Кстати так как виндовс возвращает юникодные строки в UTF-16 нужно предусмотреть случай когда там есть двухпозиционные символы. С ними тоже нужно будет что-то делать, как и в аналогичной ситуации при декодировании UTF-8 (если символ не находится в пределах первых 64к).
Предлагаю отображать. Для тех кому они интересны. Но пока не использовать самим.
alek111 писал(а):
P.S.: я недавно писал модуль для преобразования одних представлений юникода в другие на Oberon-2 (XDS).
Если кто-нибудь составит техзадание (интерфейс модуля и как обрабатывать символы о которых я писал выше), то в свободное время я могу это реализовать.
Если что-то необходимо исправить в существующем механизме преобразования в Unicode - сформулируйте это. А за реализацией дело не станет, по-моему.


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

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
Господа,
почитайте сначала стандарты и прочую техдокументацию, после этого можно будет что-нибудь обсуждать. После этого перлы типа:
GUEST писал(а):
Те позиции которые могут служить для отображения символов не являются запрещенными по определению. Относительно остальных позиций надо договориться о их использовании для каких-либо внутренних задач. Тот диапозон, о котором я писал выше в число запрещенных по UCS-2 входит? Если да, то он и подойдет.

появлятся не будут. А то впечатление что разговариваем на разных языках.

Каковы механизмы преобразования в юникод в ББ я незнаю, под моей немецкой локалью все русские символы выводятся как "крякозябры" поэтому я дальше и не копал, но если ББ получит нормальную поддержку юникода я попытаюсь его освоить. Сами языки Оберон семейства мне очень нравятся, но отсутствие нормальной поддержки юникода сводит на нет все их преимущества, сейчас использую GPCP для Java, там с этим проблем нету, но хотелось-бы что-то компилируемое.
Никаких стандартов представления строк я тоже не знаю, т.к. я не программист, поэтому всегда внимательно читаю документацию.
Последние четыре года интересуюсь проблемами кодировок и думаю, что знаю на эту тему побольше большинства посетителей форума.

Я не хочу никого обидеть, просто по моему мнению программист должен знать не только пару-тройку языков, но и основы, а формы представления текста это основы основ, более фундаментальные чем языки.
Как не печально, но науки исследующей способы представления текстовых даных нет как класса, каменный век какой-то, даже эмпирических закономерностей и свойств никто не пытался исследовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Четверг, 16 Август, 2007 20:06 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
alek111 писал(а):
Господа,
почитайте сначала стандарты и прочую техдокументацию, после этого можно будет что-нибудь обсуждать. После этого перлы типа:
GUEST писал(а):
Те позиции которые могут служить для отображения символов не являются запрещенными по определению. Относительно остальных позиций надо договориться о их использовании для каких-либо внутренних задач. Тот диапозон, о котором я писал выше в число запрещенных по UCS-2 входит? Если да, то он и подойдет.

появлятся не будут. А то впечатление что разговариваем на разных языках.

Кого Вы имеете в виду alek111? Я спросил о позициях, которые являются запрещенными. Что необходимо уточнить, чтобы было понятно?
alek111 писал(а):
Каковы механизмы преобразования в юникод в ББ я незнаю, под моей немецкой локалью все русские символы выводятся как "крякозябры" поэтому я дальше и не копал, но если ББ получит нормальную поддержку юникода я попытаюсь его освоить. Сами языки Оберон семейства мне очень нравятся, но отсутствие нормальной поддержки юникода сводит на нет все их преимущества, сейчас использую GPCP для Java, там с этим проблем нету, но хотелось-бы что-то компилируемое.

А в XDS какие проблемы? Преобразование в Unicode всюду одинаково. Только кодовую страницу правильно указывать надо.
alek111 писал(а):
Никаких стандартов представления строк я тоже не знаю, т.к. я не программист, поэтому всегда внимательно читаю документацию. Последние четыре года интересуюсь проблемами кодировок и думаю, что знаю на эту тему побольше большинства посетителей форума.
Это сразу понятно, поэтому к Вам и обратился.
alek111 писал(а):
Я не хочу никого обидеть, просто по моему мнению программист должен знать не только пару-тройку языков, но и основы, а формы представления текста это основы основ, более фундаментальные чем языки.
Как не печально, но науки исследующей способы представления текстовых даных нет как класса, каменный век какой-то, даже эмпирических закономерностей и свойств никто не пытался исследовать.
Есть такая наука. В частности говорит, что в последнем придаточном предложении для усиления выражаемого утверждения должна стоять частица "ни".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 16 Август, 2007 21:26 
Аватара пользователя

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
GUEST писал(а):
Я спросил о позициях, которые являются запрещенными. Что необходимо уточнить, чтобы было понятно?

В кодировке UTF-16 позиции диапазона 0D800H - 0DFFFH используются для представления двухпозиционных символов поэтому их нельзя использовать для представления однопозиционных символов, поэтому в стандарте юникода в таблице на этих позициях никаких символов нет и никогда не будет и использовать их ни для чего нельзя (даже если у вас UCS-2 или UTF-8 или UTF-32 ...). Так сложилось исторически. Соответственно, на эти позиции никакие свои служебные символы ставить нельзя.
В диапазоне-же для частного использования можно делать, что угодно, но если кто-то захочет использовать этот диапазон по своему, а у вас там уже служебные символы, то получится конфликт. Т.е. нужно или ужесточать стандарт, т.е. делать его несовместимым с юникодом, либо отказаться от специальных служебных символов. Другими словами, этот диапазон предназначен для конечного пользователя или специфической прикладной программы, а не для использования в глобальных системных механизмах.

GUEST писал(а):
А в XDS какие проблемы? Преобразование в Unicode всюду одинаково. Только кодовую страницу правильно указывать надо.

В XDS вообще никаких преобразований нет, что сам написал то и используешь. (я имел в виду преобразование между различными представлениями юникода)

GUEST писал(а):
alek111 писал(а):
Как не печально, но науки исследующей способы представления текстовых даных нет как класса, каменный век какой-то, даже эмпирических закономерностей и свойств никто не пытался исследовать.
Есть такая наука. В частности говорит, что в последнем придаточном предложении для усиления выражаемого утверждения должна стоять частица "ни".

Я имел в виду представление в машинной форме.
Первые кодировки делались как получится, а все последующие - чтобы обеспечить максимальную совместимость с предыдущими и добавить немного возможностей.
До сих пор я видел только одну кодировку которую проектировали для машинной обработки текстовой информации, все остальные - только для визуального отображения, а для обработки пригодны очень мало. Но и эта кодировка, по моему мнению, требует долгой обработки "напильником", чем я в свободное время и занимаюсь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Четверг, 16 Август, 2007 23:14 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
alek111 писал(а):
В диапазоне-же для частного использования можно делать, что угодно, но если кто-то захочет использовать этот диапазон по своему, а у вас там уже служебные символы, то получится конфликт. Т.е. нужно или ужесточать стандарт, т.е. делать его несовместимым с юникодом, либо отказаться от специальных служебных символов. Другими словами, этот диапазон предназначен для конечного пользователя или специфической прикладной программы, а не для использования в глобальных системных механизмах.
Представляет интерес возможность использования сторонним софтом этого диапазона в качестве расширения таблицы отображаемых символов. Если стандарт Unicode не уточняет пределы использования Private Use - то следует самим определиться с фактическим состоянием дел здесь. Относительно конфликтов по Private Use, используемым иным образом не вижу необходимости разделять с таким софтом его приватное использование. И отказываться из за этого от служ. сим. тоже.

alek111 писал(а):
В XDS вообще никаких преобразований нет, что сам написал то и используешь. (я имел в виду преобразование между различными представлениями юникода)
Или кто-то написал, а используют все. В XDS, например.
alek111 писал(а):
До сих пор я видел только одну кодировку которую проектировали для машинной обработки текстовой информации, все остальные - только для визуального отображения, а для обработки пригодны очень мало. Но и эта кодировка, по моему мнению, требует долгой обработки "напильником", чем я в свободное время и занимаюсь.
В свободное время можете рассказать какие возможности машинной обработки эта кодировка привносит. Может быть захочется реализовать и её.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 17 Август, 2007 09:39 
Аватара пользователя

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
GUEST писал(а):
Представляет интерес возможность использования сторонним софтом этого диапазона в качестве расширения таблицы отображаемых символов. Если стандарт Unicode не уточняет пределы использования Private Use - то следует самим определиться с фактическим состоянием дел здесь. Относительно конфликтов по Private Use, используемым иным образом не вижу необходимости разделять с таким софтом его приватное использование. И отказываться из за этого от служ. сим. тоже.

Еще раз повторюсь - для использования программами, а не системами (как неоднократно писалось, ББ-это по сути операционная система). Если-же вы доопределите стандарт юникод для всех кто использует ББ, то вы уже не сможете говорить, что у вас система использует юникод, т.е. конечный пользователь (программы на базе ББ) не сможет использовать их по своему усмотрению.

А зачем, собственно говоря, нужны служебные символы???

GUEST писал(а):
alek111 писал(а):
В XDS вообще никаких преобразований нет, что сам написал то и используешь. (я имел в виду преобразование между различными представлениями юникода)
Или кто-то написал, а используют все. В XDS, например.

Если подскажете где взять, буду очень благодарен.

GUEST писал(а):
alek111 писал(а):
До сих пор я видел только одну кодировку которую проектировали для машинной обработки текстовой информации, все остальные - только для визуального отображения, а для обработки пригодны очень мало. Но и эта кодировка, по моему мнению, требует долгой обработки "напильником", чем я в свободное время и занимаюсь.
В свободное время можете рассказать какие возможности машинной обработки эта кодировка привносит. Может быть захочется реализовать и её.

Эта кодировка позволяет делать сортировку (естественно не высокоинтеллектуальную, а обычную алфавитную) и поиск без учета регистра стандартным способом для всех языков, т.е. программе не нужно знать текст на каком языке она обрабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Пятница, 17 Август, 2007 21:42 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
alek111 писал(а):
GUEST писал(а):
Представляет интерес возможность использования сторонним софтом этого диапазона в качестве расширения таблицы отображаемых символов. Если стандарт Unicode не уточняет пределы использования Private Use - то следует самим определиться с фактическим состоянием дел здесь. Относительно конфликтов по Private Use, используемым иным образом не вижу необходимости разделять с таким софтом его приватное использование. И отказываться из за этого от служ. сим. тоже.

Еще раз повторюсь - для использования программами, а не системами (как неоднократно писалось, ББ-это по сути операционная система). Если-же вы доопределите стандарт юникод для всех кто использует ББ, то вы уже не сможете говорить, что у вас система использует юникод, т.е. конечный пользователь (программы на базе ББ) не сможет использовать их по своему усмотрению.

А зачем, собственно говоря, нужны служебные символы???
В чем принципиальная разница между программой в BB и системой BB ?


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

Зарегистрирован: Пятница, 20 Январь, 2006 13:18
Сообщения: 37
GUEST писал(а):
В чем принципиальная разница между программой в BB и системой BB ?

Если вы будете использовать "приватные" символы в программе на базе ВВ, то это не затронет другие программы на базе ВВ и они, если захотят, смогут использовать эти символы посвоему. Если-же вы будете использовать эти символы в базовых механизмах ВВ, то все программы, основанные на ВВ теряют возможность использовать эти символы по своему усмотрению.

"Приватные" символы - это обычные графические символы, просто в стандарте неопределено их начертание. Сделано это для того, чтобы если кому нехватает стандартных символов, он мог-бы сделать шрифт в котором на "приватных местах" стояли необходимые ему символы и использовать. Т.е. для "приватных" символов неопределено начертание, а не способ использования.

Повторяю вопрос: а зачем нужны служебные символы???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поддержка юникода в BlackBox1.6rc5
СообщениеДобавлено: Суббота, 18 Август, 2007 09:32 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Спасибо, alek111. Этой информации пришлось очень долго ждать. Не могли бы Вы уточнить тогда для какого диапозона в стандарте закреплено использование в качестве не связанного с отображением никаких шрифтов. Правда я не нашел в самом стандарте упоминания о том, как нельзя использовать приватные места. Нельзя ли цитату?
А служебные символы предназначены для разного, в том числе для организации структуры в документе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Воскресенье, 19 Август, 2007 09:08 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
alek111 писал(а):
Т.е. для "приватных" символов неопределено начертание, а не способ использования.


Я правильно понимаю, что для "приватных" символов стандарт определяет правила преобразования регистров, сортировки, нормализации и т.д. ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поддержка юникода в BlackBox1.6rc5
СообщениеДобавлено: Воскресенье, 19 Август, 2007 18:22 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Я так понимаю, что alek ответил мне, что указанный диапазон должен иметь графическое отображение. Только лишь. Здесь противоречия не видно? То, что Вас заинтересовало, касается символов какого-либо алфавита.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


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

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