PHP 5.4.* и кодировка Windows-1251 [РЕШЕНО ОТКАТОМ на 5.3.*]
LavKraft 31 октября, 2012 - 14:13
Всем привет!
На свежесобранной системе столкнулся с такой проблемой. Есть два сайта. Один работает в кодировке UTF-8, другой в Windows-1251. На дедике оба сайта работают прекрасно. А на компе тот сайт, который в Windows-1251, глючит. PHP не видит русских символов в кодировках, отличных от UTF-8. Данные через GET и POST передаются, но, стоит переменную пропустить через какую-то функцию (например, через htmlspecialchars), текст исчезает. С латиницей все в порядке, а с кириллицей такая беда. На старой генте таких глюков нет, потому, я думаю, что-то не включено в поддержку PHP или в саму ОС. Но что? Я первый раз такое вижу.
Какие есть предположения?
»
- Для комментирования войдите или зарегистрируйтесь
AddDefaultCharset foo bla
AddDefaultCharset foo bla
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
...
Так вот нет. Это директива apache, и она у меня настроена. Апач-то как раз данные передает нормально, с отображением текста проблем нет, а вот PHP обрабатывает как-то странно. Тут явно PHP чего-то не хватает.
«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.
Глупый вопрос
Версии php на системе где всё работает и на проблемной совпадают?
:wq
--
Live free or die
...
На Gentoo, где все работает:
На CentOS (она на дедике), где работает:
На Gentoo, где не работает:
Да неужели это в 5.4.* такое безобразие? Сейчас соберу 5.3.* попробую. Отпишусь потом.
«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.
/
За определениями и толкованиями шёл бы ты в... правильно, апстрим :)
По личному опыту (квест с миграцией на (5.4) несколько ранее был пройден): в 5.4 был выпилен ряд сохранявшихся заради совместимости рудиментов.
Все вопросы к коду (похапе).
ЗЫ: Только меня глючит на тему того, что проблема ни фига не решена (решена она будет когда ты раскопаешь и зацитируешь проблемный кусок кода (и не забудешь привести приемлемую для (5.4) трансляцию), а просто закрыта (или зарыта, как кому больше нравится)?
:wq
--
Live free or die
...
Я просто не могу цитировать этот код. Права не имею. А если бы мог, кода очень и очень много. Проблема решена временно, а совместимостью с 5.4 я пока просто не занимался. Проблема появлялась при проходе текста через функцию PHP htmlspecialchars (). Пока ничего другого не знаю.
«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.
/
Я конечно понимаю: вечер и всё такое...
Но ты читай что пишешь, не уподобляйся известно кому.
Применительно к (5.4) проблема не решена.
Она зарыта откатом на (5.3).
...то его ещё и читать надо.
Потому выделить минимально достаточный для демонстрации проблемы образец будет правильнее.
Повторюсь: это решение проблемы работоспособности, но не совместимости с (5.4).
По косвенным признакам разработка данного проекта в настоящее время также висит на тебе.
Если ты хочешь продолжать использовать Gentoo (почто CentOS на сервере?!?), то я бы рекомендовал проработать вопросы обеспечения наличия (5.3) средствами локального оверлейчика и миграции на (5.4).
В моей практике проблемы с однобайтными кодировками не было.
Но там исторически сложилась другая конфигурация (
cgi
не использовался, хотя дляcli
проверка прошла успешно) и cp1251 я по понятным причинам не использовал.ЗЫ: Не забыли ли авторы исходной версии про
convert_cyr_string
?:wq
--
Live free or die
...
CentOS потому, что это было самое приемлемое, что предлагал провайдер. Да, верно, проблема решена откатом. При чем, проблема работоспособности существующего кода, а не его совместимости. А когда у меня будет что-то конкретное по теме, и если будет, и если буду я заниматься миграцией этого кода на 5.4.* - я напишу. Пока это все.
«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.
...
Ну, конечно, дело в php-5.4.* Я поставил 5.3.15 (как и на рабочей генте), и все стало хорошо. Надо будет почитать о PHP 5.4. Спасибо за подсказку!
«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.