|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry Belyavsky 2:5020/400 17 Nov 2003 17:31:26 To : All Subject : Perl 5.8 -------------------------------------------------------------------------------- Hello, All! Имеется система, которая успешно работала на perl 5.005, без малейших проблем. С появлением perl 5.6 и character-семантики пришлось во все модули системы добавить 'use bytes;', что замечательно работало на новых системах, а для старых систем пришлось держать такой стаб, что, впрочем тоже работало нормально. С появлением perl 5.8 и новых версий используемых в системе модулей, (а их предостаточно) use bytes уже срабатывает не всегда. Как только в ядро системы приходят данные (а они, похоже помечены как character) от этих самых внешних внешних модулей (XML::Parser, например) и эти данные каким-нибудь образом склеиваются с bytes-данными, все становится очень плохо, т.е. похоже что perl пытается bytes данные представить себе в виде unicode и получаем на выходе вместо русских символов (koi8-r | windows-1251). Что выглядит как "ц ц ц цц" перемежающееся некими nonprintable кодами. Вопросы: Можно ли как-нибудь форсировать bytes-семантику для всех модулей? Можно ли как-нибудь провести внутреннюю конвертацию данных, которые perl считает character, в bytes? Как посмотреть текущее представление некой переменной, т.е., к примеру, понять в bytes она или где? Понятно, что оптимальным является вариант полного перехода на utf8, но это в настоящее время тяжело. With best regards, Dmitry Belyavsky. E-mail: beldmit@ice.ru --- ifmail v.2.15dev5.1 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65773940218d.html, оценка из 5, голосов 10
|