[mdk-re] Re: XML parser encodings

Mikhail Zabaluev =?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Чт Ноя 15 02:48:00 MSK 2001


Hello Sergey,

On Tue, Nov 13, 2001 at 09:05:55PM +0300, Sergey Vlasov wrote:
>
> > > Да, кстати, а как сказать iconv, чтобы он не ругался на некоторые символы,
> > > встречающиеся в текстах как "В данной кодировке таких символов нетути!" а
> > > чтоб он его просто пропускал, и топал дальше текст жевать?
> > Если речь идет об утилите командной строки, то ключик --replace=SYMBOL,
> > если о функции, то смотрите исходники утилиты командной строки.
> 
> В эти исходники я заглядывал - лучше не смотреть, там все жестко
> привязано к реализации iconv() в glibc (используются внутренние
> структуры, даже не описанные в устанавливаемых файлах
> заголовков). Оно и понятно - iconv --list вообще невозможно
> реализовать стандартными средствами, не зависящими от реализации
> iconv().
> 
> Лучше посмотреть на реализацию функции g_convert_with_fallback()
> в GLib-1.3.x (pre-2.0) - там переносимая реализация. Основной
> принцип - при ошибке преобразования исходная строка
> преобразуется в UTF-8 (что должно пройти в любом случае), а
> затем производится посимвольное преобразование из UTF-8 в
> требуемую кодировку, с заменой символов, которые не удается
> преобразовать.

Сие грамотно, разве что так тщательно нужно перекодировать только то
место, где iconv спотыкается -- ведь функция сама двигает указатели,
пока все OK.

-- 
Stay tuned,
  MhZ                                     JID: mookid на jabber.org
___________
After all, all he did was string together a lot of old, well-known quotations.
		-- H.L. Mencken, on Shakespeare




Подробная информация о списке рассылки community