Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FTN.DEVELOP
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FTN.DEVELOP с датами от 12 Jul 13 20:52:30 до 18 Oct 24 22:48:06, всего сообщений: 2735
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 588 из 2735 ==================================== RU.FTN.DEVELOP =
От   : Mithgol the Webmaster            2:50/88            11 Jan 15 23:32:16
Кому : Serguei E. Leontiev                                 11 Jan 15 23:32:16
Тема : Черновик стандарта фидонетовских подстрок Unicode (русская версия)
FGHI : area://RU.FTN.DEVELOP?msgid=2:50/88+54b2ddfb
На   : area://RU.FTN.DEVELOP?msgid=<1187498419@ddt.demos.su>+d34727c8
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.FTN.DEVELOP?msgid=<1187498777@ddt.demos.su>+769041b0
==============================================================================
Так было 23:07 27 Dec 14 написано от Serguei E. Leontiev к Mithgol the Webmaster:

MtW>> Готовая реализация у меня есть в форме модуля для Node.js,
MtW>> содержащего код на языке JavaScript. По адресу
MtW>> https://github.com/Mithgol/fiunis я выложил этот код на GitHub
MtW>> под достаточно свободной лицензией (MIT). Там можно увидеть,

SEL> Hаличие готовой реализации, по возможности, не должно довлеть над
SEL> обсуждением наилучшего и наиболее ясного варианта кодирования (условно
SEL> назову его CP866-UTF-7).

SEL> Предлагаю рассмотреть обработку сообщения с фрагментом UUE в следующих
SEL> вариантах:
SEL>     a. Кодер CP866-UTF-7, декодер CP866-UTF-7;
SEL>     b. Кодер CP866-UTF-7, традиционный декодер ФИДО CP866;
SEL>     с. Традиционный кодер ФИДО CP866, декодер CP866-UTF-7.

SEL> Возможные варианты кодирования:
SEL>     1. Сообщение кодируется согласно UTF-7, при декодировании UTF-7
SEL> входное сообщение предварительно перекодируется из CP866.
SEL>         Плюсы:
SEL>             - Чётко определённый процесс соответствующий RFC 2152;
SEL>         Минусы:
SEL>             - Традиционный декодер ФИДО CP866 не сможет отобразить
SEL> русский текст;
SEL>             - В тексте после традиционного декодера будут вместо '+' -
SEL> "+-";
SEL>             - Традиционный декодер ФИДО CP866 не сможет обработать UUE,
SEL> т.к. '+' будет закодирован как "+-";
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /\+[A-Za-z01-9+\/]+-/ с достаточно высокой
SEL> вероятностью, как в составе текста, так и в UUE блоках. Поэтому
SEL> требуется, либо расширение значения существующих kludge CHRS и т.п.,
SEL> либо использование нового;
SEL>             - Каждая русская буква кодируется 2.66 символами;

Минусов столько, что я могу надеяться на то, что такого в Фидонете никто
и никогда делать не станет.

SEL>     2. Расширение UTF-7 для CP866, при котором символы CP866 являются
SEL> допустимыми.
SEL>         Фрагменты сообщения, которые содержат набор символов CP866 и не
SEL> содержащие символа '+', кодируются как CP866. Остальные фрагменты
SEL> кодируются согласно UTF-7.
SEL>         Плюсы:
SEL>             - Просто определяемый процесс;
SEL>             - Hизкая цена кодирования: +2 символа на каждый фрагмент, +1
SEL> символ на каждый '+', +33% по сравнению с UTF-8;
SEL>         Минусы:
SEL>             - В тексте после традиционного декодера будут вместо '+' -
SEL> "+-";
SEL>             - Традиционный декодер ФИДО CP866 не сможет обработать UUE,
SEL> т.к. '+' будет закодирован как "+-";
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /\+[A-Za-z01-9+\/]+-/ с достаточно высокой
SEL> вероятностью, как в составе текста, так и в UUE блоках. Поэтому
SEL> требуется, либо расширение значения существующих kludge CHRS и т.п.,
SEL> либо использование нового.

Минусов меньше, но появление +- вместо + я считаю достаточным недостатком
для того, чтобы также надеяться на то, что такого в Фидонете никто и никогда
делать не станет.

SEL>     3. Кодирование UTF-7 для CP866 в HTML стиле
SEL>         Фрагменты сообщения, которые содержат набор символов CP866 и не
SEL> содержащие последовательностей символов "&+", кодируются как CP866.
SEL> Остальные фрагменты кодируются согласно UTF-7 в опциональном варианте
SEL> кодирования символов набора O (Set O), по правилу 2 (Unicode shifted
SEL> encoding). С добавлением '&' перед началом и заменой завершающего '-' на
SEL> ';'. (Возможно я недостаточно строго описал процесс кодирования)

Да, возможно.

Поправка такова: там, где ты пишешь 'не содержащие последовательностей
символов &+', в действительности речь идёт о том, чтобы не содержать
последовательностей, подпадающих под регулярное выражение
/&\+[A-Za-z01-9+\/]+;/

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

SEL>         Плюсы:
SEL>             - Достаточно низкая вероятность порождения
SEL> последовательностей /&\+[A-Za-z01-9+\/]+;/ вне блоков UUE;
SEL>             - Синтаксис похож на HTML, "вкусовщина" конечно, но
SEL> некоторым нравится;
SEL>         Минусы:
SEL>             - Способ кодирования последовательности "&+" неоднозначен,
SEL> например, кодер UTF-7 может породить "+ACY-+-" или "&+-" и тогда
SEL> получится "&+ACY-+;" или "&&+;" (вариант: "&+<WHITE SMILING FACE>" может
SEL> породить несколько вариантов: "&&+-+Jjo;", "&+ACYAKyY6;" и т.п.).
SEL> Поэтому требуется дополнительное строгое описание способа кодирования
SEL> "&+";

Специальное кодирование последовательности &+ не производится.

SEL>             - В тексте после традиционного декодера вместо "&+" будет
SEL> нечто;

В тексте последовательность &+ не подвергается изменению.

SEL>             - Традиционный декодер ФИДО CP866 не сможет обработать UUE,
SEL> т.к. "&+" будет закодирован, например, как "&+ACYAKw;";

Традиционный декодер Фидо CP866 сможет обработать UUE, так как всякая
последовательность &+ (и даже последовательность, регулярному выражению
/&\+[A-Za-z01-9+\/]+;/ соответствующая), будет внутри блока UUE оставлена
без малейшего изменения.

SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /&\+[A-Za-z01-9+\/]+;/, как в составе текста, так и в
SEL> UUE блоках. Поэтому требуется, либо расширение значения существующих
SEL> kludge CHRS и т.п., либо использование нового;

Проблема появления последовательности /&\+[A-Za-z01-9+\/]+;/ в блоках UUE
решается кодированием и декодированием блоков UUE отдельно от остального
текста фидопочты.

Проблемой появления последовательности /&\+[A-Za-z01-9+\/]+;/ в обычном тексте
я был намерен пренебречь как редкостною.

Поэтому расширение существующих кладжей или использование нового не требуется.

SEL>     4. Исправленное кодирование UTF-7 для CP866 (вариант u)
SEL>         Фрагменты сообщения, которые содержат набор символов CP866 и не
SEL> содержащие последовательностей символов ":u+", кодируются как CP866.
SEL> Остальные фрагменты кодируются согласно UTF-7 с добавлением
SEL> последовательности ":u" перед результатом кодирования. При
SEL> декодировании, после перекодирования из CP866, максимально длинные
SEL> последовательности удовлетворяющие образцу
SEL> /:u(:u)?\+[-A-Za-z01-9+\/]*-/, обрабатываются согласно UTF-7
SEL>         Плюсы:
SEL>             - Просто определяемый процесс;
SEL>             - Традиционный декодер ФИДО CP866 сможет нормально
SEL> обработать UUE, т.к. в UUE блоках не может содержаться ":u+";
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /:u(:u)?\+[-A-Za-z01-9+\/]*-/ только в составе
SEL> текста, поэтому UUE блоки не будут искажены декодером CP866-UTF-7;
SEL>             - Частота встречаемости ":u+" достаточно низка, например, 8
SEL> ГиБ архиве конференций ФИДО она не встретилась ни разу;
SEL>         Минусы:
SEL>             - В тексте после традиционного декодера вместо ":u+" будет
SEL> ":u:u+-" (может ли такое быть в URL, где это невозможно заметить?);
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /:u(:u)?\+[-A-Za-z01-9+\/]*-/, хотя и с крайне низкой
SEL> вероятностью (ни одной на архив 8 ГиБ). Всё равно, желательно, либо
SEL> расширение значения существующих kludge CHRS и т.п., либо использование
SEL> нового;

Интересная идея, хотя само по себе употребление такой последовательности
символов (начинающейся двоеточием) имеет готовое значение метки в языке
BAT-файлов для Windows (а также, может быть, и для предшествующих DOS-систем),
так что теоретически оно не маловероятно, даже если на практике никогда в Фидо
не встречалось. Приведу пример такого батника с такой меткою на второй строке
(обойдусь бесконечным циклом для демонстрации идеи; в действительности батники
бывают и посложнее этого):

@echo off
:u+1F4A9
echo Создалась ситуация, в Unicode символом U+1F4A9 выразимая.
goto u+1F4A9

Цитирование таких батников в Фидонете может создавать проблемы поэтому.

SEL>     4. Исправленное кодирование UTF-7 для CP866 (вариант табуляции)
SEL>         Фрагменты сообщения, которые содержат набор символов CP866 и не
SEL> содержащие последовательностей символов "\t+", кодируются как CP866.
SEL> Остальные фрагменты кодируются согласно UTF-7 с символа табуляции ('\t')
SEL> перед результатом кодирования. При декодировании, после перекодирования
SEL> из CP866, максимально длинные последовательности удовлетворяющие образцу
SEL> /\t(\t)?\+[-A-Za-z01-9+\/]*-/, обрабатываются согласно UTF-7
SEL>         Плюсы:
SEL>             - Просто определяемый процесс;
SEL>             - Традиционный декодер ФИДО CP866 сможет нормально
SEL> обработать UUE, т.к. в UUE блоках не может содержаться "\t+";
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /\t(\t)?\+[-A-Za-z01-9+\/]*-/ только в составе
SEL> текста, поэтому UUE блоки не будут искажены декодером CP866-UTF-7.
SEL>         Минусы:
SEL>             - В тексте после традиционного декодера вместо "\t+" будет
SEL> "\t\t+-";
SEL>             - Традиционный кодер ФИДО CP866 может порождать
SEL> последовательности /\t(\t)?\+[-A-Za-z01-9+\/]*-/. Поэтому требуется,
SEL> либо расширение значения существующих kludge CHRS и т.п., либо
SEL> использование нового;

В любом языке программирования с Си-подобной записью выражений (например,
в JavaScript, в Java, в PHP) появление на новой строке +someIdentifier--
(например, в результате переноса на новую строку последнего слагаемого,
наделённого к тому же постфиксным декрементом) является возможным делом,
равно как и отступ табуляцией перед ним. Это будет ложным срабатыванием.

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

MW>> расширение обратно совместимым. Если это расширение в
MW>> дальнейшем обретёт в Фидонете изрядную популярность, да и сам
MW>> Фидонет также, то тогда нельзя исключать возможность обратного
MW>> заимствования из этого стандарта в язык HTML для компактной
MW>> записи последовательностей символов Unicode в HTML.

SEL> Такое обратное заимствование представляется крайне маловероятным, т.к.
SEL> в HTML уже есть, как возможность использования UTF-8, что заметно
SEL> компактнее UTF-7 и т.п., так и возможность использования отдельных
SEL> символов Unicode для контекста с устаревшими кодировками (это хоть
SEL> и не так компактно, зато всюду уже поддерживается и используется).

Хорошо, я признаю незначимость этой надежды в нынешнем рассуждении.


Фидонет будет великим и гипертекстовым!    [Ru.Mozilla]     http://Mithgol.Ru/
Mithgol the Webmaster.                    [Братство Нод] [Team А я меняю subj]

... работа и дисциплинированная борьба, часто с большими жертвами. (Джин Шарп)
--- Безумец! Беглец! Доpоги нет!! Ты видишь: вокpуг GoldED-NSF 1.1.5-20090710
* Origin: Сомкнулись мысли в pяд стихов ── в них pулез Роуpи IMHO (2:50/88)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.118901 секунды