[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: Re: Re: Re: Б ОХ Её ОБ ЖЙЗ, ЬФХ Xkb.
Вот спасибо человеку. Сразу понятно стало.
Тогда хорошо. Пусть каждая ОС изобретает себе (из всех
мыслимых и немыслимых соображений) свой юникод, а на
выходе выдает файлы в системно независимом и через
Internet передаваемом формате UTF8, раз он самый
популярный.
В Винде, по-моему и есть UCS-4.
Почему бы и Линуксу не взять на вооружение в качестве
внутреннего формата.
И поскорей бы, а то очень хочется ездить в командировки со
стареньким лаптопом (HD 120 Mb, то есть только консоль по
минимому и vim), писать там юникодные файлы, а
обрабатывать их по возвращении под иксами со всеми
прибамбасами.
Уже надоело скакать из Винды в Линукс и обратно. Работать
надо.
Владимир
Ivan Pascal wrote:
> Вот нет чтобы послать человека куда-нибудь. :-)
> Только куда?
> На http://www.unicode.org/ слишком много всего, сразу не разберешься. А
> посылать к Александру на "Locale AS IS" бесполезно (надеюсь - _пока_
> бесполезно :-).
> Ну можно хотя бы к Czyborr'е - http://czyborra.com/
>
> Хоть кто-нибудь объяснил бы внятно, что
> - для Unicode есть два способа кодирования UCS и UTF
> - UCS - это просто под символ выделяется переменная размером больше чем
> байт
> 16-битная - UCS-2 или 32-битная UCS-4
> - с ними (UCS кодами) можно работать как и с байтами - считать длину,
> сравнивать посимвольно, находить i-ый символ в строке (естественно, для
> этого используются отдельные подпрограммы, которые знают, что - один
> символ это переманная типа int или long) - но вот эти UCS очень плохо
> передавать (копировать, пересылать "мылом" и т.п.) через программы,
> которые считают, что в текстах могут быть только байты
> Проблема и в том, что при сохранении например 00000041h (буква A) в
> файле
> появятся нулевые байты, и в том, что разные платформы по разному
> интерпретируют порядок байтов в длинных переменных ( указанную букву можно
> записать в файл как 00 00 00 41 и как 41 00 00 00) - для решения этих
> проблем придумали семейство UTF (Unicode Transformation Format). Самый
> популярный - UTF8, хотя есть (или были) UTF1, UTF7, UTF7.5, UTF16. - В
> этих форматах каждый UCS код преобразуется в последовательность
> "легальных" байтов, но эта последовательность - ПЕРЕМЕННОЙ ДЛИНЫ. (код
> 00000041 в UTF8 кодируется как один байт - 41, код 000000A0 - C2 A0, код
> 00002000 - E2 80 80 и т.п.) - естественно, нормально работать с такими
> строчками в программе НЕВОЗМОЖНО (можно только НЕ нормально).
> Поэтому, внутри программы Unicode надо держать в виде UCS - кодов
> большой
> длины, но фиксировнного размера, и только сохранять в файле имеет смысл в
> UTF8
>
> (Кое к чему здесь можно придраться, но в целом - примерно
так.).
************************
Vladimir NOVIKOV
vnovikov@novikov.org
100713.20@compuserve.com
+++++
We don't need Windows, we don't need Gates, we have the whole Linux Universe.
*************************