[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