julik live

PHP - исходники в UTF-8...

Сегодня в очередной раз собрался “сломать орешек” - разобраться, почему не получалось у меня культурно записать RSS-feed с одного хорошего сайта


Причем я помнил, что у меня были какие-то очень странные траблы, но не помнил какие. После полутора часов копания удалось выявить интересный факт.

Оказалось, что если все исходники (без исключения) записаны в кодировке win-1251, включение такой конструкции:

include_once ('my_unicode_source.php');
убивает PHP на корню (в смысле не segfault - а что-то полюбопытнее, попробуйте как-нибудь). То есть - при включении исходника в кодировке UTF-8 c символами вне ASCII со всем кодом происходит что-то совершенно запредельное. Однако раньше я этого не замечал (поскольку все скрипты написаны в win-1251 и шаблоны тоже, а вот RSS-ленту надо бы сразу писать в Юникоде). По первости грешил на PostgreSQL с его переключением кодировок, но в какой-то момент стало понятно, что он там совершенно ни при чем. Потом встретился с другим любопытным фактом, но он уже далеко не курьезен.

И еще. Оказалось, что меня теперь везде преследуют русские Апачи. Когда-же народ перестанет цепляться за эти глупости и займется делом.

Чтобы я еще раз сделал сайт в win-1251...лучше сразу убейте!

Suspects: Веб-стройка Юникод

 
comments powered by Disqus

Aspirine not included.