Функция htmlspecialchars()

Вопросы, связанные с локализацией phpBB 2.0.x
Vova
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 09.08.2006 17:50

Функция htmlspecialchars()

Сообщение Vova » 11.08.2006 10:58

в файлах viewtopic.php и viewforum.php, используется функция htmlspecialchars(), я так понимаю что она преобразует введенный текст в HTML сущности типа (#1085;ов&#1072&#1103).

Проблема в том что она название темы (если она написана на русском) по какой-то причине не преобразовывает обратно и отображает в названии совсем не то что хотелось бы.

В БД русские названия тем хранятся в HTML сущностях (#1085;ов&#1072#1103).

Есть обратная ей функция - html_entity_decode -- Преобразует HTML сущности в соответствующие символы. Может быть стоит ее применить в обратном преобразовании?

~ & § OM § & ~
phpBB 1.4.4
Сообщения: 141
Зарегистрирован: 02.07.2006 12:34
Контактная информация:

Сообщение ~ & § OM § & ~ » 11.08.2006 11:01

Vova
чета вы гоните )
htmlspecialchars преобразует исключительно спецсимволы, но никак не русские буквы. Если у вас так храняться русские буквы то разберитесь с кодировкой, она должна быть везде win-1251 (cp1251_general_cs)
Вниманию чертей!
Прежде чем задать очередной идиотский вопрос - прочитай сначала правила, потом общие ошибки новичков, Руководство пользователя и частозадаваемые вопросы, после чего, если желание задавать вопрос еще не пропало - на основании шаблона запроса можно задать вопрос в соответствующем разделе конференции.
Необходимо помнить, что поддержка оказывается только для последней версии и только на конференции.

Vova
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 09.08.2006 17:50

Сообщение Vova » 11.08.2006 11:31

Если у вас так храняться русские буквы то разберитесь с кодировкой
Где хранятся? Они в базу попадают уже в таком виде. Значит это phpBB их сначала преобразовывает.

она должна быть везде win-1251 (cp1251_general_cs)
Где везде? В lang_main.php менял переменную
$lang['ENCODING'] = 'win-1251; - не помогает, в БД менял все текстовые поля на 'win-1251 - не помогает.

~ & § OM § & ~
phpBB 1.4.4
Сообщения: 141
Зарегистрирован: 02.07.2006 12:34
Контактная информация:

Сообщение ~ & § OM § & ~ » 11.08.2006 11:33

Vova
Да это вы отправляете туда в тако кодировке
Слушайте, у вас случаем не с EZ порталом такая проблема?
Вниманию чертей!
Прежде чем задать очередной идиотский вопрос - прочитай сначала правила, потом общие ошибки новичков, Руководство пользователя и частозадаваемые вопросы, после чего, если желание задавать вопрос еще не пропало - на основании шаблона запроса можно задать вопрос в соответствующем разделе конференции.
Необходимо помнить, что поддержка оказывается только для последней версии и только на конференции.

Vova
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 09.08.2006 17:50

Сообщение Vova » 11.08.2006 11:37

Портал EZ не знаю, вот ссылка:
http://www.ecoforum.com.md/viewforum.ph ... 2dc712a416

~ & § OM § & ~
phpBB 1.4.4
Сообщения: 141
Зарегистрирован: 02.07.2006 12:34
Контактная информация:

Сообщение ~ & § OM § & ~ » 11.08.2006 11:41

ну с русскими буквами все ок... Чтоже вас не устраивает?
Вниманию чертей!
Прежде чем задать очередной идиотский вопрос - прочитай сначала правила, потом общие ошибки новичков, Руководство пользователя и частозадаваемые вопросы, после чего, если желание задавать вопрос еще не пропало - на основании шаблона запроса можно задать вопрос в соответствующем разделе конференции.
Необходимо помнить, что поддержка оказывается только для последней версии и только на конференции.

Vova
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 09.08.2006 17:50

Сообщение Vova » 11.08.2006 11:46

да - а вы попробуйте добавить новую тему, кроме того посмотрите там где Message -> post subject - он не отображается корректно.

а название темы стало частично правильно отображаться после того как я добавил в viewtopic.php функцию html_entity_decode() в строке 199.

~ & § OM § & ~
phpBB 1.4.4
Сообщения: 141
Зарегистрирован: 02.07.2006 12:34
Контактная информация:

Сообщение ~ & § OM § & ~ » 11.08.2006 11:50

Vova
чета вы намутилинереальное )))
Вниманию чертей!
Прежде чем задать очередной идиотский вопрос - прочитай сначала правила, потом общие ошибки новичков, Руководство пользователя и частозадаваемые вопросы, после чего, если желание задавать вопрос еще не пропало - на основании шаблона запроса можно задать вопрос в соответствующем разделе конференции.
Необходимо помнить, что поддержка оказывается только для последней версии и только на конференции.

Vova
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 09.08.2006 17:50

Сообщение Vova » 11.08.2006 11:54

ну да - это просто нереально - когда ставишь phpBB 2.0.21 и он ни в какую не работает с русским языком :) .

~ & § OM § & ~
phpBB 1.4.4
Сообщения: 141
Зарегистрирован: 02.07.2006 12:34
Контактная информация:

Сообщение ~ & § OM § & ~ » 11.08.2006 11:56

Vova
1481714-стучись попробую помоч ;)))
Вниманию чертей!
Прежде чем задать очередной идиотский вопрос - прочитай сначала правила, потом общие ошибки новичков, Руководство пользователя и частозадаваемые вопросы, после чего, если желание задавать вопрос еще не пропало - на основании шаблона запроса можно задать вопрос в соответствующем разделе конференции.
Необходимо помнить, что поддержка оказывается только для последней версии и только на конференции.

Аватара пользователя
direqtor
phpBB 1.4.1
Сообщения: 43
Зарегистрирован: 07.06.2006 4:54
Откуда: Владивосток
Контактная информация:

Сообщение direqtor » 08.11.2006 5:46

Проблема как всегда не с phpBB 2.0.21, а с мозгом.
Vova писал(а):
Если у вас так храняться русские буквы то разберитесь с кодировкой
Где хранятся? Они в базу попадают уже в таком виде. Значит это phpBB их сначала преобразовывает.
она должна быть везде win-1251 (cp1251_general_cs)
Где везде? В lang_main.php менял переменную
$lang['ENCODING'] = 'win-1251; - не помогает, в БД менял все текстовые поля на 'win-1251 - не помогает.
Русские буквы преобразует не phpbb, они меняются при вводе в поле формы. В php попадают уже сущности HTML.
Внимательно смотрим: $lang['ENCODING'] = 'win-1251; не поможет, это неправильно. Правильное наименование русской кодировки windows-1251.
Поскольку в вашей странице стоит

Код: Выделить всё

<meta http-equiv="Content-Type" content="text/html; charset=win-1251">
то браузер такой кодировки не знает, и потому все, что попадает в поля формы преобразуется.
Программы тупы, если наименование кодировки не соответствует стандарту, то она его не поймет и проигнорирует. Уберите черточку или напишите windows1251 слитно и получите тот же результат.

Закрыто

Вернуться в «Локализация phpBB 2.0.x»