From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Sergey Vlasov To: mandrake-russian@altlinux.ru Subject: Re: [mdk-re] Re: XML parser encodings Message-Id: <20011113210555.4db73470.vsu@mivlgu.murom.ru> In-Reply-To: <20011113175016.GO1754@pc152.belcaf.minsk.by> References: <20011112225043.GB1936@localhost.localdomain> <20011113175016.GO1754@pc152.belcaf.minsk.by> X-Mailer: Sylpheed version 0.6.5 (GTK+ 1.2.10; i586-alt-linux) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: Linux-Mandrake RE / ALT Linux discussion list List-Unsubscribe: , List-Archive: Date: Tue Nov 13 20:49:26 2001 X-Original-Date: Tue, 13 Nov 2001 21:05:55 +0300 Archived-At: List-Archive: List-Post: On Tue, 13 Nov 2001 19:50:16 +0200 Alexander Bokovoy 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) - там переносимая реализация. Основной принцип - при ошибке преобразования исходная строка преобразуется в UTF-8 (что должно пройти в любом случае), а затем производится посимвольное преобразование из UTF-8 в требуемую кодировку, с заменой символов, которые не удается преобразовать.