Титла: Кирилица и Perl Публикувано от: ivanatora в Feb 22, 2005, 15:16 Имам един смесен текст с латиница и кирилица (html страница). От нея изваждам разни неща и си ги подреждам. Проблема е че кирилските знаци май не съвпадата в \w
Пример: while ($splited[0] =~ m/name='(\d+)'>(\w*\s)/g){ print "$1 $2\n"; } Това изписва само съвпаденията на латиница. Нещо аз ли не правя като хората, или charset-а е виновен? [EDIT] use encoding 'cp1251'; реши проблема. Много обичам да намирам решението 10 мин след като съм оврънкал десет форума Титла: Кирилица и Perl Публикувано от: berov в Mar 07, 2005, 01:31 О, извинявай не видях последния ред, но долното сигурно ще е полезно и за някой друг.
Ами чарсета тие виновен май, особено ако е utf-8 Ако е така, и ползваш пърл 5.8 внимавай много. имах си големи проблеми и аз. Та ако искаш да мапваш байтове знай, че кирилските символа са представени от 2 байта докато латинските - от един това си е от utf-8. аз още не съм си решил проблема но намерих в CPAN един модул encoding::warnings, който следи за имплицитни конверсии. в документацията пише, че ако искаш да търсиш символи а не байтове трябва в скрипта да зададеш
но това само, когато скрипта ти е в тази кодова таблица, иначе ползвай
попрочети документацията. аз четох доста, обаче проблема си го имам. иначе когато търся в низове нямам проблем с намирането щом съм задал
Та това е. ето примери за търсене: Дано ти свършат работа
Титла: Кирилица и Perl Публикувано от: picmaster в Mar 08, 2005, 18:45 Най-гадното в цялата работа е, че винаги най-трудното решение на даден проблем е най-правилно... По принцип, UTF-8 е вариант, който е за предпочитане при многоезична среда/софтуер, само че проблема обикновено се крие в библиотеките които работят със символните низове . Примерно в GTK+ проблема е решен, като вътрешно се работи винаги със UTF-8, всички обработки на низове са в UTF-8, а към програмиста вече се вижда преобразуван към текущия
локал текст. В Qt идеята е същата. Още един бляскав пример за перфектна многоезична поддръжка с UTF-8 e Мозила. Ако искаш да подходиш професионално, ще трябва да поддържаш тази кодировка. Само че в България, всички ги мързи (както и мен ), и затова лесно-лесно претупват нещата със CP1251, KOI-8R, KOI-8U... |