В Internet материалов по перекодировке символов между русскими кодировками на удивление мало. В данной статье автором предпринята попытка заполнить информационный вакуум: обобщить собственный опыт, систематизировать и построить как можно более полное соответствие между символами русского алфавита и специальными символами КОИ8, win-1251, CP866, ISO8859-5.URL: http://www.freelance.pp.ru/articles/recoding.shtml
Новость: http://www.opennet.me/opennews/art.shtml?num=3833
Интересно. Автор не знает про iconv или принципиально не желает ею пользоваться?
>Интересно. Автор не знает про iconv или принципиально не желает ею пользоваться?
>
Знаю... Но принципально не желаю пользоваться. Поясню почему. У себя на сервере, естественно, могу творить, что хочу - iconv прокатывает. Тут согласен.
У провайдера есть свой админ - что ему в голову взбредет - никто не знает. По опыту скажу, что для хостинга _на_стороне_ проще иметь свои инструметы, пусть даже кривые, чем творить разборки со службой поддержки. Просто-напросто много раз обжигался (и наблюдал как другие обжигаются) на доверии к модулям.
Ну и субъективно, конечно, терпеть не могу программы, которым нужно то, се, пятое, десятое: чтобы слолжить 2 и 2 требуется установить 10 модулей (утрирую), хотя, кроме как для данной программы они нигде не нужны.
После кругового хождения по граблям при конвертации UNICODE закерся не использовать iconv, сейчас эти проблемы уже давно исправлены, но первое впечатление формирует общее отношение.
PS. Нифига, исправляют одно - портят другое:
http://www.google.com/search?hl=en&q=iconv+unicode+bug"iconv failure when compiling file which is not valid UTF-8"
http://lists.ximian.com/archives/public/mono-bugs/2002-April...Гады, сколько эти молчаливые падения крови съели..... Могу только сказать, что iconv можно использовать только когда на 100% уверен, что UNICODE представление валидно.
Может и не знает, но это не повод для особой критики. Я вот тоже написал свой рекодер на Си, когда он потребовался. Вылизывал почти год. Сначало он только koi2win рекодировал - для закачки на сайт. Потом дополнил alt. По потребности, в общем. Потом на нем учился строить порт. Теперь это порт для FreeBSD. Включить его в порты отказали - сослались на существующие. Ну и фак: мой и быстрее и удобнее. Не хотите - не надо.
Я, кстати, так и не добрался до спецсимволов. Спасибо автору, я у него стырю таблицу для них.
А удовольствия сколько?
10x
http://apache.lexa.ru
Ни разу не подводил.
Вы бы лучше про автораспознавание замутили --- у меня модуль cyrillic иногда глючит.
Можно глянуть сюда:http://kedr.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/ch09s0...
Утилитка 2k - мне удобно.
С уважением Евгений
Ну наро-о-од! Про автораспознавание. Господа, посмотрите на таблицы кодов. В моей статье. Теперь очень-очень сложные вопросы: не с заглавной ли буквы в любом языке начинается предложение? многими символами предложение может оканчиваться? не строчными ли буквами пишутся слова в предложении?Хотя, если кто еще попросит, и про автораспознавание напишу.
Хм. Вопрос к критикам: многие ли из программ могут делать упомянутые в статье составные замены - когда отсутствующий символ (в КОИ нет многоточия, например) заменяется с помощью нескольких символов?
http://tony2001.phpclub.net/detect_charset/
Как просто. Я имел в виду по словарю там порыться, чтобы все прописные/все строчные и без знаков препинания тоже работали. А многоточия --- ни разу в контент-сайтах тех же не видел. И прочие "пропущенные" знаки --- это теховоды любят с такими мелочами ковыряться.
#!/usr/bin/perl -w
use strict;
my $code_from = shift @ARGV;
my $code_to = shift @ARGV;
binmode STDIN, ":encoding($code_from)";
binmode STDOUT, ":encoding($code_to)";
undef $/; print <>;