Страница 1 из 1

Функция htmlspecialchars()

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

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

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

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

Добавлено: 11.08.2006 11:01
~ & § OM § & ~
Vova
чета вы гоните )
htmlspecialchars преобразует исключительно спецсимволы, но никак не русские буквы. Если у вас так храняться русские буквы то разберитесь с кодировкой, она должна быть везде win-1251 (cp1251_general_cs)

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

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

Добавлено: 11.08.2006 11:33
~ & § OM § & ~
Vova
Да это вы отправляете туда в тако кодировке
Слушайте, у вас случаем не с EZ порталом такая проблема?

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

Добавлено: 11.08.2006 11:41
~ & § OM § & ~
ну с русскими буквами все ок... Чтоже вас не устраивает?

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

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

Добавлено: 11.08.2006 11:50
~ & § OM § & ~
Vova
чета вы намутилинереальное )))

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

Добавлено: 11.08.2006 11:56
~ & § OM § & ~
Vova
1481714-стучись попробую помоч ;)))

Добавлено: 08.11.2006 5:46
direqtor
Проблема как всегда не с 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 слитно и получите тот же результат.