Привет всем!1)Нужно перевести текст из кодировки UTF8 в UCS2, в Perl -е
Покопался с нете нашел нечто такое, но не работает:
====
use Encode qw/encode decode/;$ucs2 = encode("UCS-2LE", $text);
====
2)Подскажите, как в Perl-e проверить кодировку? Т.е. есть ли какая нибудь функция в которую можно задаёшь текст, а она тебе выводит кодировку?
Заранее благодарен!
Сделал так и все заработало:use Encode;
$ucs2 = encode("UTF-16be", $text);
>[оверквотинг удален]
>
>$ucs2 = encode("UCS-2LE", $text);
>====
>
>
>2)Подскажите, как в Perl-e проверить кодировку? Т.е. есть ли какая нибудь функция
>в которую можно задаёшь текст, а она тебе выводит кодировку?
>
>
>Заранее благодарен!проверка кодировки относиться к методам дешифровки, проверяется в перле так же как и везде - любой дешифрующей методикой, лично я бы использовал метод анализа на основе статистически встречающихся в тексте букв и буквенных пар, но можно делать и на основе словаря. творите )
Привет,Вообще-то есть на свете и iconv, хотя конкретное решение зависит от задачи - но можно, наверно, и без Perl обойтись.
WWell,
>Привет,
>
>Вообще-то есть на свете и iconv, хотя конкретное решение зависит от задачи
>- но можно, наверно, и без Perl обойтись.
>
>WWell,и как же iconv проверяет кодировку? Это довольно не трививальная задача.
> и как же iconv проверяет кодировку?Он её не проверяет, а дефолтная берется из getenv( LANG );
> Это довольно не трививальная задача.TESTWORD="Тестирование"
FOR I IN $LIST_OF_KNOWN_CODING
DO
FOR J IN $ASPELL_WORDLIST
DO
TMPSTR = encode(I, J);
RET = STRCMP(TMPSTR, TESTWORD);
IF ( RET == 0 )
RETURN I;
ENDO
ENDO
как-то так