[Comm] Re: кодировки [JT]
Vitaly Ostanin
=?iso-8859-1?q?vyt_=CE=C1_vzljot=2Eru?=
Пн Янв 19 21:08:10 MSK 2004
On Fri, 16 Jan 2004 21:19:15 +0300
Alexej Kryukov <akrioukov на mail.ru> wrote:
> On Friday 16 January 2004 20:36, Vitaly Ostanin wrote:
> > > >
> > > > Я наткнулся на эту ситуацию при сборке XML документа на
> > > > французском в pdf. Это именно U+0092 (’), в pdf он
> > > > попал белым квадратом (используется unicode-шрифт, нужный
> > > > символ в нём есть, проверено с разными шрифтами). В
> > > > html-выводе то же самое.
> > >
> > > По-моему, U+0092 != ’. ’ -- это *8-битный*
> > > символ,
> >
> > 146 - это код символа в UNICODE, нотация ’ - это код
> > UNICODE в десятичной системе счисления (XML entity для ввода
> > символа).
>
> Да нет же! Для чисел < 256 подобные entities означают ссылку не
> на Юникод, а на место в текущей кодовой странице, которая может
> быть и 8-битной.
Для XML это не так.
http://www.w3.org/TR/REC-xml#NT-Char
http://www.w3.org/TR/REC-xml#charencoding
> Если не верите,
Не верю :) И все известные мне реализации XML-парсеров тоже не
верят.
> попробуйте отобразить в браузере
> документ следующего содержания:
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <html>
> <head>
> <meta content="text/html; charset=windows-1252"
> http-equiv=Content-Type></head>
> <body>
> <p>’’’</p>
> </body>
> </html>
Во-первых, это HTML, а не XML. А во-вторых, что это должно
доказать? Я увидел три символа, похожих на апострофы.
> > 9*16+2 = 146
> >
> > Про "8-битный символ" деликатно молчу ;)
>
> Еще раз повторяю, что 146 == 0x92 != U+0092. Шестнадцатиричную
> систему счисления я тоже знаю ;-)
Аргументируйте. Пока не убедительно.
> > Документ собирался из XML с корректным указанием кодировки,
> > текущая кодовая страница ни при чём. Разве что сглючила в
> > notepad со вводом на французском, о чём я и говорю :)
>
> *Какая* кодировка там была указана? koi8, что ли?
ISO-8859-1. Вы хотите сказать, что винда использует для
французского cp1252 ?
> Факт тот,
> что, если notepad работал в 8-битном режиме, то никаких других
> кодов, кроме соответствующих cp1252, французская клавиатура
> производить не могла. В чем здесь глюк?
Не знаю, в чём работал notepad. Глюк в том (повторюсь), что
был показан один символ, записан код другого. Принадлежность
кодировке значения не имеет, т.к. xmllint перекодирует с учётом
кодировок. Если в кодировках ошибся notepad (и винда, в которой
"лепота"), то и в этом глюк.
> > > Еще раз. Судя по тому, что Вы пишете, Вам нужен был не
> > > accent aigu, а именно апостроф. Код этого символа в
> > > кодировке cp1252 -- именно 146 (0x92). Отображаться на
> > > Unicode он должен как U+2019. В кодировке iso8859-1 этого
> > > символа нет,
> >
> > Нет, мне был нужен именно accute accent, и он есть в
> > кодировке iso8859-1 :) Проблема была именно в том, что
> > блокнот записывал этот символ неправильным кодом.
>
> Тогда объясните, в каком контексте во французском языке может
> встретиться acute accent *сам по себе*, а не над буквой. Вы же
> привели пример (d'un), а это именно апостроф.
Документ, в котором был accute accent, мне прислал автор текста
на французском, он же сообщил мне, что апостроф для замены не
подходит. Отсюда я сделал вывод, что это не апостроф. Однако сути
глюка это не меняет - записан был даже не апостроф, а символ
контрольной последовательности.
<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/20040119/a25113ed/attachment-0002.bin>
Подробная информация о списке рассылки community