UTF-8 и language файл для vBulletin

1 23
Jackyk
На сайте с 05.10.2005
Offline
342
#21

Спасибо.

В-общем, как перекодировать файл - вроде разобрался.

Но выявилась еще одна проблема - на этот раз, похоже, на уровне vBulletin.

Итак, база в UTF-8. Создавалась в шелле, collation по умолчанию, то есть utf8_general_ci.

Устанавливаем vB, даже языковой файл пока не закачиваем (не важен он, так как там только переводы). И пробуем написать по-русски сообщение. Разумеется, не в каком-то непонятном в редакторе, а просто в форуме, как мы здесь пишем. И выясняется, что ряд символов отображается некорректно. В частности - "ш" отображается "квадратиком" в IE и "??" в firefox, "И" отображается как "п". При этом в CMS eZ - ровно в той же кодировке база, один в один, и всё отображается великолепно. Так что, похоже, что-то в движке форума не того. Вот такие пироги с котятами. Может, кто знает, в чем может быть дело?

С уважением, Евгений.
vrom
На сайте с 15.12.2005
Offline
84
#22
Jackyk:
Спасибо.
В-общем, как перекодировать файл - вроде разобрался.

Но выявилась еще одна проблема - на этот раз, похоже, на уровне vBulletin.
Итак, база в UTF-8. Создавалась в шелле, collation по умолчанию, то есть utf8_general_ci.
Устанавливаем vB, даже языковой файл пока не закачиваем (не важен он, так как там только переводы). И пробуем написать по-русски сообщение. Разумеется, не в каком-то непонятном в редакторе, а просто в форуме, как мы здесь пишем. И выясняется, что ряд символов отображается некорректно. В частности - "ш" отображается "квадратиком" в IE и "??" в firefox, "И" отображается как "п". При этом в CMS eZ - ровно в той же кодировке база, один в один, и всё отображается великолепно. Так что, похоже, что-то в движке форума не того. Вот такие пироги с котятами. Может, кто знает, в чем может быть дело?

может быть дело в том, что при коннекте к MySQL пхп использует дефолтовую кодировку сервера (скорее всего latin)

При этом у самой базы может стоять utf8_general_ci - и тогда проблема обеспечена.

Я этого наелся вдоволь с TYPO3 :) - в итоге проблему решил.

Ну а eZ повидимому делает нужные запросы сразу после установления соединения:

SET NAMES utf8;

SET CHARACTER SET utf8;

см вот здень http://typo3.biz/showthread.php?t=1438

Разработка интернет-магазинов на CS-Cart (http://typo3lab.ru/cs-cart.html). Почему CS-Cart рулит? (http://typo3lab.ru/cs-cart.html#c967)
Jackyk
На сайте с 05.10.2005
Offline
342
#23

Валерий, возможно, именно так и есть.

character_set_server у меня cp1251, а всё остальное - utf8. Мне казалось, что поменять character_set_server не столь сложно, и что это выставляется в my.cnf. Но вчера я весь день провозился с этим файлом, выставлял всё, вроде бы, как надо, затем перезапускал сервер MySQL - а кодировка сервера character_set_server не менялась! И пока как её изменить, я не понял. Такое ощущение, что настройки из этого файла вообще не применяются! Может, кто сталкивался?

А что касается запросов "SET NAMES utf8; SET CHARACTER SET utf8;"

- да, полагаю, так и есть. Но в vB-то ведь не изменишь эти запросы! Там же тысячи файлов надо менять. А на данный момент там мало того, что не корректно отображаются некоторые символы, так еще и при просмотре кода страницы видны не русские буквы, а юникодовские крякозяблы прещен. В-общем, пока проблема осталась.

Jackyk
На сайте с 05.10.2005
Offline
342
#24
vrom:
может быть дело в том, что при коннекте к MySQL пхп использует дефолтовую кодировку сервера (скорее всего latin)
При этом у самой базы может стоять utf8_general_ci - и тогда проблема обеспечена.

Кодировку поправил.

character_set_client utf8

character_set_connection utf8

character_set_database utf8

character_set_results utf8

character_set_server utf8

character_set_system utf8

collation_connection utf8_general_ci

collation_database utf8_general_ci

collation_server utf8_general_ci

Казалось бы, ну всё должно быть чики-факи. Ан-нэт. "ш" и "И" не отображаются корректно, хоть тресни. Похоже, придется в саппорт vBulletin отправлять все логины/пароли, чтоб разбирались.

Jackyk
На сайте с 05.10.2005
Offline
342
#25

Yes! ОБХС. В-общем, обошлись без саппорта vB, который в лучших традициях прислал невразумительный совет настроить язык в админке (естественно, это было сделано в первую очередь и без их напоминаний). Надо отдать должное, что они предложили выслать им все логины/пароли, но - мы обошлись своими силами, методом под названием "Поиск в Яндексе с дальнейшим долбанием стены лбом".

Итак, итоги всего того, что тут написано я отделю в новую тему в раздел "Веб-Строительство", чтобы описание было уже без лирики, без дебатов и без всего того, что можно отнести к моей криворукости. Потому что проблема реально существует, относится она, как выяснилось, отнюдь не только к vBulletin, и дело не в кривых руках, хотя и в них хорошего тоже мало. Судя по тем крикам о помощи, что я за вчера/сегодня почитал в сети, это явление реально может быть проблемой при реализации проекта в UTF-8.

Итак, тут подробное описание и решение.

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий