[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. 	
*************************