[Comm] Re: кодировки [JT]

Vitaly Ostanin =?iso-8859-1?q?vyt_=CE=C1_vzljot=2Eru?=
Вт Янв 20 13:34:35 MSK 2004


On Mon, 19 Jan 2004 22:27:44 +0300
Alexej Kryukov <akrioukov на mail.ru> wrote:

> On Monday 19 January 2004 21:08, Vitaly Ostanin wrote:
> > On Fri, 16 Jan 2004 21:19:15 +0300
> >
> > >
> > > Да нет же! Для чисел < 256 подобные entities означают
> > > ссылку не на Юникод, а на место в текущей кодовой странице,
> > > которая может быть и 8-битной.
> >
> > Для XML это не так.
> > http://www.w3.org/TR/REC-xml#NT-Char
> > http://www.w3.org/TR/REC-xml#charencoding
> 
> Эта спецификация написана в расчете исключительно
> на Юникод и существование иных кодировок вообще
> признает сквозь зубы. 

Не совсем так. Они вообще абстрагируются от представления
символов. То есть в XML нет способа узнать код символа, потому
что коды и представления символов там отсутствуют как класс. То
есть задать символ через сущность - можно. Получить его номер -
нет.

> Так что тут недоработка: как
> тогда прикажете ссылаться на позицию в текущей кодовой
> странице, если документ неюникодовый?

Вряд ли это недоработка XML, поскольку у него нет такой задачи.

<skipped/>

> > ISO-8859-1. Вы хотите сказать, что винда использует для
> > французского cp1252 ?
> 
> А Вы хотите сказать, что нет? Винда попросту *не знает* иной 
> западноевропейской кодировки, кроме cp1252. Поэтому,
> естественно, в заголовке следовало выставлять именно ее. Тем
> более, что cp1252 -- это всего лишь расширение iso-8859-1, так
> что прочие символы от этого бы никоим образом не пострадали.

Ага. Теперь убедительно. Надо будет попробовать.

> > Не знаю, в чём работал notepad. Глюк в том (повторюсь), что
> > был показан один символ, записан код другого. Принадлежность
> > кодировке значения не имеет, т.к. xmllint перекодирует с
> > учётом кодировок. Если в кодировках ошибся notepad (и винда,
> > в которой"лепота"), то и в этом глюк.
> 
> Вы редактировали 8-битный документ. Существенно лишь это, т. к.
> знания Notepad о кодировках ограничиваются лишь умением
> отличать Юникод от 8-битных. Собственно, странно было бы
> требовать от редактора такого класса чего-то большего.
> 
> Далее, Вы вводили текст с французской клавиатуры, которая в
> 8-битном приложении не могла генерировать ничего другого, кроме
> 8-битных же кодов в соответствии с cp1252. С этой
> клавиатуры Вы ввели символ ANSI 146, который в cp1252
> соответствует U+2019 и посредством его же, естественно,
> отображается. Потом Вы перекодировали с помощью xmllint с
> учетом *неправильной* кодировки, выставленной в заголовке.
> Спрашивается, где глюк -- в винде, или всё-таки у Вас?

Теперь понятно, что у меня.

> > Документ, в котором был accute accent, мне прислал автор
> > текста на французском, он же сообщил мне, что апостроф для
> > замены не подходит. Отсюда я сделал вывод, что это не
> > апостроф. 
> 
> Какой апостроф? Тот, что на клавише [']? Дык ясный пень, не 
> подходит. А вот quote single right -- в самый раз.
> 
> > Однако сути
> > глюка это не меняет - записан был даже не апостроф, а символ
> > контрольной последовательности.
> 
> Это символ контрольной последовательности только в кодировке 
> iso-8859-1. А в cp1252 -- ничего подобного, вполне нормальный
> печатаемый символ, который, как я сказал, соответствует U+2019.

Спасибо огромное, Вы меня убедили. Буду менять кодировку в
объявлении XML.

<skipped/>

-- 
Regards, Vyt
mailto:  vyt на vzljot.ru
JID:     vyt на vzljot.ru
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20040120/9876eede/attachment-0002.bin>


Подробная информация о списке рассылки community