Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Gremlin Зрелый участник форума
Зарегистрирован: 14.02.2005 Сообщения: 155
|
Добавлено: Пт Дек 09, 2005 16:54 Заголовок сообщения: |
|
|
Claymore писал(а): | Кодировка такая, какую укажешь. |
Кажется на w3.org писалось
Цитата: | ...Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646. ... | , т.е. кодировки появляются только в файлах - а внутри только уникод (да еще и 3.1, т.е [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]).
Claymore писал(а): | А вот доступ к символам за пределами этой кодировки в &#code; В принципе, нормально сконвертировать XML в другую кодировку с созранением всех символов можно, но та же iconv этого делать не будет. |
Библиотеки (программные) все равно в уникоде работают. И тот же libxml2 отлично пользуется iconv'ом, и символы почему-то не теряются.
Claymore писал(а): | IMO, механическая автоперекодировка - зло. Хотя её можно делать на стороне пользователя, а не собственно библиотеки. |
И, как мне кажется, автоперекодировка работает только в паре с причесывалкой, а там уже все-равно во что сохранять (думаю что против UCS4 будут уже все ).
А вообще - это обсуждение бред. Тем перекодировщикам, которые не понимают xml, не место в процессе подготовки и заливки книги в библиотеку, а если потерь символов нет (и xml получается идентичным) то почему бы и нет.
Лично я предпочитаю более компактное (и по возможности однобайтное) представление, там где это можно, но и уникод уже много чем (хотя и не всем) поддерживается, так что и он не смертелен (хоть и жутко пока неудобен). |
|
Вернуться к началу |
|
|
vvv Автор редактора BookDesigner
Зарегистрирован: 06.10.2004 Сообщения: 349
|
Добавлено: Пт Дек 09, 2005 18:44 Заголовок сообщения: |
|
|
Admin писал(а): | Не надо забывать, что перевод из UTF-8 в Win-1251 может исказить текст, который обратным переводом не восстановить. Например, исказится какое-нибудь французское слово. |
Смотря как перекодировать. Если в лоб - MultiByteToWideChar(CP_UTF8,...) -> WideCharToMultiByte(CP_RUSSIAN,...) - то исказишь. А если аккуратно, то все будет ок.
Например, как это сделано в FBD. Внутренняя кодировка FBD - utf-8. Но создаваемый fb2 можно записать в трех кодировках: универсальная - utf-8, и две локальных - win-1251 и win-1252. Если выбрана локальная и отмечено "keep unicode", то FBD преобразует все символы, не принадлежащие к данной кодировке, в html-юникоды (#xxxx). А то, что принадлежит - оставит как есть. В результате искажений не будет.
А дальнейшее зависит от читалки. Приличные (типа Haali), html-юникоды понимают и отобразят все правильно. Ну а на неприличные и суда нет... |
|
Вернуться к началу |
|
|
Claymore Новенький участник форума
Зарегистрирован: 03.12.2005 Сообщения: 6 Откуда: Тамбов
|
Добавлено: Пт Дек 09, 2005 20:26 Заголовок сообщения: |
|
|
Gremlin писал(а): | т.е. кодировки появляются только в файлах - а внутри только уникод (да еще и 3.1, т.е [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]). |
А мы о файлах и говорим, а не о внутреннем представлении в программах. Внутри оно обычно UCS2 (UTF-16[LE|BE]), а сами символы из Unicode, как ты правильно заметил. =)
Gremlin писал(а): | Библиотеки (программные) все равно в уникоде работают. И тот же libxml2 отлично пользуется iconv'ом, и символы почему-то не теряются. |
И я о том же. Если программа/библиотека - XML-aware, например, тот же xmllint/libxml2, то всё будет в порядке. Сам по себе iconv ничего об XML не знает и лишь сообщает об ошибке, когда не может перекодировать тот или иной символ.
Gremlin писал(а): | А вообще - это обсуждение бред. Тем перекодировщикам, которые не понимают xml, не место в процессе подготовки и заливки книги в библиотеку, а если потерь символов нет (и xml получается идентичным) то почему бы и нет.
Лично я предпочитаю более компактное (и по возможности однобайтное) представление, там где это можно, но и уникод уже много чем (хотя и не всем) поддерживается, так что и он не смертелен (хоть и жутко пока неудобен). |
И тут я тоже с тобой согласен. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|