From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Mikhail Zabaluev To: mandrake-russian@altlinux.ru Message-ID: <20011116093803.GH2040@localhost.localdomain> Mail-Followup-To: Mikhail Zabaluev , mandrake-russian@altlinux.ru References: <20011112225043.GB1936@localhost.localdomain> <20011113175016.GO1754@pc152.belcaf.minsk.by> <20011113210555.4db73470.vsu@mivlgu.murom.ru> <20011114235900.GL1995@localhost.localdomain> <20011115175409.122d1e43.vsu@mivlgu.murom.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20011115175409.122d1e43.vsu@mivlgu.murom.ru> User-Agent: Mutt/1.3.23.1i Subject: [mdk-re] Re: XML parser encodings 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: Fri Nov 16 12:27:13 2001 X-Original-Date: Fri, 16 Nov 2001 12:38:03 +0300 Archived-At: List-Archive: List-Post: Hello Sergey, On Thu, Nov 15, 2001 at 05:54:09PM +0300, Sergey Vlasov wrote: > > On Thu, 15 Nov 2001 02:59:00 +0300 > Mikhail Zabaluev wrote: > > > > Лучше посмотреть на реализацию функции g_convert_with_fallback() > > > в GLib-1.3.x (pre-2.0) - там переносимая реализация. Основной > > > принцип - при ошибке преобразования исходная строка > > > преобразуется в UTF-8 (что должно пройти в любом случае), а > > > затем производится посимвольное преобразование из UTF-8 в > > > требуемую кодировку, с заменой символов, которые не удается > > > преобразовать. > > > > Сие грамотно, разве что так тщательно нужно перекодировать только то > > место, где iconv спотыкается -- ведь функция сама двигает указатели, > > пока все OK. > > В общем случае это не проходит - исходная кодировка может быть > хитрой многобайтовой, поэтому пропустить мешающий символ сложно. > В UTF-8 такой проблемы нет. Тогда уж лучше в UCS-4, чтобы потом легко скакать по 32-битным словам. Минимизировать работу по трехступенчатой схеме все же можно: сделать lookahead на "сложном месте" байт в 6-8, чтобы любой известный науке многобайтовый символ мог проскочить. А потом продолжить прямую перекодировку с того места, где остановились указатели. -- Stay tuned, MhZ JID: mookid@jabber.org ___________ That government is best which governs least. -- Henry David Thoreau, "Civil Disobedience"