|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Michael Shigorin 2:5020/400 26 Nov 2001 16:01:11 To : Vladimir Bormotov Subject : Re: recode -------------------------------------------------------------------------------- Vladimir Bormotov <bor@vb.dn.ua> wrote: VB> и очень часто iconv ругается, что во _входном_ потоке левые символы. Так, собственон, "что с ними делать"? Я сейчас могу их игнорировать или менять на любой угодный мне "?". Только вот оставлять, как Вы говорили, "как есть" -- вряд ли можно. 1) есть многобайтники (чушь получится вместо символа), 2) "один в поле не воин" (и теряется взаимная однозначность соответствия). VB>>> Может быть выдавать предпреждение, что в такой-то позции входного потока VB>>> "пролез" лсимвол, которого там быть не должно, с возможностью давить это VB>>> предупреждение ключиком. MS>> Hе знаю. Меня это дефолтное поведение тоже слегка убило... Так что, MS>> все на bugs@gnu.org ? VB> я не знаю как делать правильно перекодировку. Совенно тут этот вопрос уже VB> поднимался... Кстати, недавно эти же моменты обсуждались в m-r@a.r -- упоминалась реализация в glib... О, нашел. On Tue, 13 Nov 2001 19:50:16 +0200 Alexander Bokovoy <a.bokovoy@sam-solutions.net> wrote: > On Wed, Nov 14, 2001 at 12:43:52AM +0800, Alexei Takaseev wrote: > > On Tue, 13 Nov 2001, Mikhail Zabaluev wrote: > > > > > Для тех libc, что не в танке, есть libiconv. Так что, думаю, > > > предлагать можно настойчиво, особенно если предусмотреть > > > aclocal-скрипт поиска реализации iconv, который можно стянуть из > > > доброго десятка других пакетов. Лучший, по-моему, в mutt. > > > > Да, кстати, а как сказать iconv, чтобы он не ругался на некоторые символы, > > встречающиеся в текстах как "В данной кодировке таких символов нетути!" а > > чтоб он его просто пропускал, и топал дальше текст жевать? > Если речь идет об утилите командной строки, то ключик --replace=SYMBOL, > если о функции, то смотрите исходники утилиты командной строки. В эти исходники я заглядывал - лучше не смотреть, там все жестко привязано к реализации iconv() в glibc (используются внутренние структуры, даже не описанные в устанавливаемых файлах заголовков). Оно и понятно - iconv --list вообще невозможно реализовать стандартными средствами, не зависящими от реализации iconv(). Лучше посмотреть на реализацию функции g_convert_with_fallback() в GLib-1.3.x (pre-2.0) - там переносимая реализация. Основной принцип - при ошибке преобразования исходная строка NB: ^^^^^^ преобразуется в UTF-8 (что должно пройти в любом случае), а затем производится посимвольное преобразование из UTF-8 в требуемую кодировку, с заменой символов, которые не удается преобразовать. _______________________________________________ Mandrake-russian mailing list Mandrake-russian@altlinux.ru http://altlinux.ru/mailman/listinfo/mandrake-russian -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ http://visa.chem.univ.kiev.ua/~mike/ --- ifmail v.2.15dev5 * Origin: ~ (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7600de0ec20c.html, оценка из 5, голосов 10
|