|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 26 Nov 2001 17:18:19 To : Michael Shigorin Subject : Re: recode --------------------------------------------------------------------------------
Hi, Michael!
>>>>> "MS" == Michael Shigorin <mike@lic145.kiev.ua> writes:
VB>> и очень часто iconv ругается, что во _входном_ потоке левые символы.
MS> Так, собственон, "что с ними делать"? Я сейчас могу их игнорировать
MS> или менять на любой угодный мне "?".
опять-же, если "игнорировать" = "выкинуть вообще", то это неверно.
MS> Только вот оставлять, как Вы говорили, "как есть" -- вряд ли можно.
предложи более хороший способ применимый на практике.
MS> 1) есть многобайтники (чушь получится вместо символа),
разумеется это все актуально для преобразования кодировок с одинаковым
размером символа.
MS> 2) "один в поле не воин" (и теряется взаимная однозначность соответствия).
вот какраз если _всех_ "неверных" заменить на _одни_ указаный в ключике
-r, то и получается бардак.
Может быть есть смысл _квотить_ их в выходном потоке, эскейпить или как-то
еще. HО! Прерывать преобразование, я считаю HЕ ПРАКТИЧHО. Заменять "все
непонятное на что-то одно, но понятное" еще более непрактично. Выкидывать
"как непонятное" - совсем бред.
[skip]
MS> Лучше посмотреть на реализацию функции g_convert_with_fallback() в
MS> GLib-1.3.x (pre-2.0) - там переносимая реализация. Основной принцип -
MS> при ошибке преобразования исходная строка
MS> NB: ^^^^^^
MS> преобразуется в UTF-8 (что должно пройти в любом случае), а затем
MS> производится посимвольное преобразование из UTF-8 в требуемую
MS> кодировку, с заменой символов, которые не удается преобразовать.
яще раз - я не знаю _нормального_ выхода, то штатная утилита iconv меня
совсем не устраивает. Т.е. АБСОЛЮТHО.
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541ca98e1e8.html, оценка из 5, голосов 10
|