netch: (Default)
netch ([personal profile] netch) wrote2005-02-18 02:47 pm

Anti-debugging

Хочется странного. :)

Когда-то ставили RT3 (http://bestpractical.com/rt/ кто не знает). Не пошёл по совершенно идиотской причине: при нажатии в вебморде reply/comment, текст (который в базе в utf-8) подвергался конвертированию iso-8859-1 -> utf-8, с соответствующими последствиями.;((( Плюнули, поставили RT2 с русификационными патчами и успокоились.

Есть организация Z где сейчас RT3. Эффект регулярно повторяется. Решил поймать. Оживил RT3, не могу повторить - всё нормально работает. Пробую в Z - тоже не повторяется (хотя раньше с тем же браузером работало!)
У нас perl 5.8.5 (на первой пробе был 5.6.1), у Z - 5.8.5, админ клянётся что ничего не менял. Взял тамошние настройки кодировок - тоже работает.

Смотрю сейчас на всю эту картину и пытаюсь понять: правильно ли, что всё работает и я не знаю, почему оно работает? Пытаться добиться прежнего эффекта или, как с большинством остальных программ, считать, что раз у меня всё работает - вообще не надо ничего искать?

Хотелось бы забить на старые баги, но какое-то чувство, что меня накалывают и что не должна гордость позволять мириться с этим...

[identity profile] egorfine.livejournal.com 2005-02-18 01:29 pm (UTC)(link)
Мы очень хорошо знаем, что происходит. Точнее, мы это знаем большой кровью. :-\

Что могу сказать... работает - молись. Или пройдись по RT3 и расставь "use bytes" везде где только можно.

PS: RT3 must die.

[identity profile] egorfine.livejournal.com 2005-02-18 02:11 pm (UTC)(link)
Рассказать можешь?

Все очень просто - перл пытается распознать, где идет строка в utf8 и тут же ее апгрейдит в utf8-представление у себя самого внутри. Это кошмар, ужас и я даже не знаю что сказать. Отключить у перла эту фичу удалось только на 5.8.6 путем прописывания use bytes во ВСЕ блоки кода (ну, я имею в виду пекеджи).

Это НЕ лечится.

> PS: RT3 must die.

Воистину, отче :) Но ведь работает?


Маст дай!

Что хочется сейчас добавить к ней - редукцию кодировок выходных писем.

И это тоже геморройно.

[identity profile] egorfine.livejournal.com 2005-02-21 09:48 am (UTC)(link)
Нет. :(

Лечится только полным выключением implicit upgrade - "use bytes" в каждый модуль.

[identity profile] bk-man.livejournal.com 2005-02-27 06:13 am (UTC)(link)
Только вот тогда length() и прочие отрабатывать нормально перестают и length('путин') выдает 10 вместо положенных 5.

[identity profile] egorfine.livejournal.com 2005-02-27 11:41 am (UTC)(link)
Так и замечательно.