Неправильно отображается UTF-8 из SSI.php

Автор Frost, 23 марта 2009, 13:51:03

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Frost

Форум в UTF-8 установлен на Денвер. Запускаю ssi_examples.php, русский отображается артефактами (показывает нормально только если в браузере вручную поставить кодировку UTF-8). Пробовал сделать как здесь написано. Не помогает. Может я не туда вставляю, или эта информация устарела. Подскажите решение пожалуйста. Версия SMF 1.1.8.

Хотел бы в дальнейшем выводить некоторую информацию на главной странице сайта (Joomla 1.0.12).

BIOHAZARD

добавть meta таг в заголовок страницы
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Roman_Grishin

слушайте, у меня вообще никак не работает кодировка.
добавлял метатег windows-1251
добавлял метатег cp-1251
добавлял метатег utf-8
менял кодировку самого ssi.php на utf-8, менял на ANSI, все без толку. в чем может быть проблема то???
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

digger®

Цитата: Roman_Grishin от 10 августа 2009, 00:55:26
слушайте, у меня вообще никак не работает кодировка.
добавлял метатег windows-1251
добавлял метатег cp-1251
добавлял метатег utf-8
менял кодировку самого ssi.php на utf-8, менял на ANSI, все без толку. в чем может быть проблема то???

В settings.php добавить строчку
$db_character_set = 'cp1251';

Roman_Grishin

а форум в крякозябры не уйдет после такого?
у меня форум utf
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

Roman_Grishin

у меня там прописано $db_character_set = 'utf8';
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

а как же настроить ssi чтоб без крякозябров выводилось??
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

у меня в подписи ссылка
www.forumforall.net
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

это в индекс.темплейт, там хоть "charset=krackozybr" прописывай - ничего не изменится... это только пометка для браузера. форум в ютф, все файлы в ютф, только один метатег показывает windows-1251 при том это вообще ничего не значит...

могу поставить charset=utf-8, если вас смущает windows-1251 =)
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

digger®

Цитата: Roman_Grishin от 10 августа 2009, 03:35:26
это в индекс.темплейт, там хоть "charset=krackozybr" прописывай - ничего не изменится... это только пометка для браузера. форум в ютф, все файлы в ютф, только один метатег показывает windows-1251 при том это вообще ничего не значит...

А форум мы не браузером что ли смотрим?
В index.russian-utf8.php у $txt['lang_character_set'] какое значение?

Roman_Grishin

Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

я потестил http://forumforall.net/ssi_examples.php в опере, хроме и ИЕ7 - везде крякозябры вместо русского, вот проблема...
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

BIOHAZARD

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/> - вот это действительно проблема
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Roman_Grishin

на этом форуме тоже самое windows-1251, этот форум разве не utf-8 ?
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

BIOHAZARD

нет, этот как раз в windows-1251, и в тэгах у него windows-1251, и хост отдаёт правильные заголовки
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Roman_Grishin

а вот и доказательство что вообще никакой разницы нет что писать в метатегах:
поставил в index.template.php метатег с utf-8 и НИЧЕГО не изменилось...
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

BIOHAZARD

страница forumforall.net/ssi_examples.php

в теле страницы:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>

в ответе сервера:
Content-Type: text/html; charset=windows-1251

и где тут UTF-8??

PS: в ssi_examples.php не используется тема оформления
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Roman_Grishin

переправил в forumforall.net/ssi_examples.php кодировку на utf-8, результата нет ((
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

Mavn

в настройках веб сервака случаем не указана принудительная кодировка??

в httpf.conf или .htaccess директива

AddDefaultCharset windows-1251
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Roman_Grishin

httpf.conf или .htaccess директива
у меня нет таких файлов
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

Mavn

ну так задай вопрос хостеру в чем проблема то?
или сам задай кодировку через .htaccess
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Roman_Grishin

если Вам не трудно, поможете с htaccess?
а то я не знаю что писать в нем и куда его залить, хотя предполагаю что в корень сайта.
у меня форум в utf8, после манипуляций с .htaccess ничего не заглючит?
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

Mavn

1. свяжитесь с хостером и задайте вопрос ему о принудительной кодировке страниц директиву при помощи которой производится данное действие я привел выше.
2. закройте форум и посмотри как будет работать при установке нужной кодировки т.е. UTF8
файл .htaccess можете разместить в папке непосредственно с форумом

AddDefaultCharset UTF8
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Roman_Grishin

спасибо! сейчас попробую
...
...
...
Отлично!!! Спасибо товарищу Админу!!! Все стало нормально))
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

d1e

Народ помогите, у меня с SSI.php проблема. Я сделал что нужно, добавил новость на сайт, прописав путь к SSI и отобразив нужную строчку через echo. ну вот короче все работает норм, но иногда над текстом вылезает следующая ошибка:

"Notice: SSI.php не может загрузить сессию! Возможно это проблема связана с выходом или другими функциями - пожалуйста убедитесь что SSI.php вставлен в самом начале перед всеми другими скриптами! in /home/netotmirru/domains/netotmir.ru.temphost.info/public_html/forum/SSI.php on line 166"

в чем может быть дело? путь к SSI прописан правильно...
мне из-за этой ошибки хостер не переводит сайт на .ру !))

Roman_Grishin

во всех скриптах вставь на первой строке:
<?php require("/путь до твоего файла/SSI.php"); ?>
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

d1e

Цитата: Roman_Grishin от 14 августа 2009, 22:32:49
во всех скриптах вставь на первой строке:
<?php require("/путь до твоего файла/SSI.php"); ?>


<?php require("forum/SSI.php"); 
{
if (
$output_method != 'echo')
echo 
$context['random_news_line'];
}
?>


так правильно?
я так прописываю, но та же ошЫбка....

d1e

эта ошибка еще вылазиет не всегда.... когда как =)  crazy

Roman_Grishin

текст ошибки в студию))

и так попробуй:

<?php require("__forum/SSI.php");

if ($output_method != 'echo')
echo $context['random_news_line'];

?>

(нафик там эти {} скобки??)
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

Цитата: digger от 17 августа 2009, 00:29:21
Изобретатели :)
Оба не понимают что делают, но один спрашивает, а второй советует.
ну тык, на форумах всегда так)))
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄


Roman_Grishin

ну да, я это и думал написать, просто я не знаю PHP и все выражения на этом языке просто придумываю и пишу здесь)))
типа так:

random(php_code);
print php_code;

вообще, если этот код в бесконечный цикл засунуть можно через каких-то 200 лет получить рабочую CMS)))

... или упавший сервер через 10 минут
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

d1e

я кстати понял же в чом ошибка))

просто SSI надо было писать в самый верх перед всеми скриптами, а то что нужно уже { --- } куда хочешь вставлять...

Mavn

Вам об этом сказали намного раньше!
Цитата: Roman_Grishin от 14 августа 2009, 22:32:49
во всех скриптах вставь на первой строке:
<?php require("/путь до твоего файла/SSI.php"); ?>
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Roman_Grishin

ура! значит я был прав))) Спасибо, Mavn!
Христианский форум для всех! - Видение G12 в России!
►СПАСИБО ВСЕМ УЧАСТНИКАМ ЭТОГО ФОРУМА, БЛАГОДАРЯ ВАМ У МЕНЯ ФОРУМ РАБОТАЕТ БЕЗ ПРОБЛЕМ◄

roga_i_kopita

Отцы! Помогите советом! Не могу победить кодировку. Спецом не спрашивал, боролся, как мог, вкуривал форум. Но вот уже утро наступило и мысли в голове больше не появляются.

Есть SMF2.0 RC3 весь сплошняком в UTF-8 (и база в utf8_general_ci, и русские файлы шаблона, и вообще всё).
Соответственно в исходном коде страницы мета теги с кодировкой есть: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Есть Joomla 1.5.16 тоже вся прям в UTF-8, дальше нЕкуда. И база, и файлы.
В коде страницы нужная кодировка также присутствует: <meta http-equiv="content-type" content="text/html; charset=utf-8" />
Ну дампы баз выкладывать не буду, уж поверьте на слово, там всё utf8_general_ci.

В жумле в модуле PHP кода пишу:
<?php
include '/var/www/sites/kadetclub.ru/forum/SSI.php';
ssi_recentTopics($num_recent 8$exclude_boards null$include_boards null$output_method 'echo');
?>


На морде сайта получаю:
[??????? ????] ??????????? ??????? ??????? ???????????? ????? ?? ?? от Kadet Вчера в 18:20:13
[???????] ????????? ???? ?? ??????? 2010 от ?? ????? 26 Апреля 2010, 16:58:58
[???????] ????????? ???? от ?? ????? 26 Апреля 2010, 16:58:18
[???????] ???????? ??? ???? ;) ;) ;) от ?? ????? 26 Апреля 2010, 16:56:21
[??????, ???????? ?????, ?????...] ???????? ????? ??? ??? ??????? - ????? ??????? ?? от ?? ????? 26 Апреля 2010, 16:52:29
[??????? ? ??????? ?????] ??????? ???????????????? ????? ? ?????? ? ??? от PluSh_KiLLeR 21 Апреля 2010, 20:13:09
[???????] ????????????? ??????????????? ?????????? ? ??????. ???-?????? ??????????????... от Endorfin 17 Апреля 2010, 23:54:08
[????????????????, ???????, ??????, ???????????...] ?????? ??????! от PluSh_KiLLeR 27 Февраля 2010, 17:38:33


Решил на всякий случай поиграть с функцией iconv. Нашёл тут на форуме работающий код:
<?php
include '/var/www/sites/kadetclub.ru/forum/SSI.php';
$recentTopics ssi_recentTopics('10','','array');
$out ='';
foreach(
$recentTopics as $post)
{
$out .= $post['link'];
$out .= '<BR />';
$out .= $post['poster']['link'];
$out .= ' | ';
$out .= $post['time'];
$out .= '<BR />';
}
echo 
iconv("CP1251""UTF-8//IGNORE"$out);
?>


Результат не изменился, опять каракули, но только чуть-чуть другие. Ну уж для верности эксперимента CP1251 и UTF-8 менял местами.
Каракули меняются, но остаются нечитабельными.  :)

Решил подключить файл SSI.php другого форума ну и соответственно тянуть его сообщения (он на этой же машине физически лежит). Форум тоже SMF2.0 RC3, тоже в UTF-8. С нуля установленный, муха не сидела! Никаких модификаций там не делалось. Тема поговорить там только одна - тестовая, из трёх слов.
Результат тотже: жалкие три слова - и те в каракулях.

В процессе всяческих танцев с бубном кэш форума и браузера очищал. SSI подключал и через require_once.

Правильного отображения добился только вот таким кодом:
<?php
include 'http://kadetclub.ru/forum/SSI.php?ssi_function=recentTopics';
?>


Скажите, почему такая херня с кодировкой может происходить? Когда всё сплошняком в UTF-8! Почему правильная кодировка появляется только при подключении через URL с передачей в адресной строке параметров? Так не удобно!!! Без редактирования SSI.php вывод таким образом не отфильтровать, в URL никакие значения больше не передать.  >:D
У меня уже нету больше идей.

Mr. Anviss

Для roga_i_kopita
Это происходит потому что веб сервер отдает по умолчанию в кодировке windows-1251
Для устранения данной проблемы необходимо в файле .htaccess (если такового нет - создать и положить в папку с самопальным скриптом) прописать: AddDefaultCharset UTF-8 и будет тебе счастье. Ну это правда если хостинг разрешает это делать.

Да кстати, в iconv параметр CP1251 не правильный. По правилам пишут windows-1251
Вот блин забыл сказать: ты не то куришь :)


Mr. Anviss

#43
Смотри с какими  параметрами вызывается iconv:
http://ru.wikipedia.org/wiki/Iconv
Еще вот здесь (всетаки с оф. сайта):
http://ua.php.net/manual/en/function.iconv.php#83511
Я обосновал свои слова

BIOHAZARD

это не более, чем пара примеров
в спецификации не указывается как именно должна задаваться кодировка

PS: на php.net был пример и с cp1252
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

digger®

Цитата: Mr. Anviss от 28 апреля 2010, 17:09:30
Смотри с какими  параметрами вызывается iconv:
http://ru.wikipedia.org/wiki/Iconv
Еще вот здесь (всетаки с оф. сайта):
http://ua.php.net/manual/en/function.iconv.php#83511

Iconv вызывается с параметрами кодировка1 и кодировка2. Значения параметров должны соответствовать локалям имеющимся в системе.
iconv -l показывает наличие локалей CP1251 и UTF-8
Что не правильно и где пруфлинк на обещанные правила?

Mr. Anviss

Чтобы прекратился этот срач (возможно я задел чьё-то честолюбие) и чтобы ув. digger немного успокоился и почуствовал себя гуру в php я сделаю поправку к своим словам:
Применять CP1251 или windows-1251 скорее дело вкуса и настроек php.ini

Mr. Anviss

Цитата: Mr. Anviss от 28 апреля 2010, 18:25:38
Чтобы прекратился этот срач (возможно я задел чьё-то честолюбие) и чтобы ув. digger немного успокоился и почуствовал себя гуру в php я сделаю поправку к своим словам (хотя я больше встречал применение именно windows-1251):
Применять CP1251 или windows-1251 скорее дело вкуса и настроек php.ini


Mr. Anviss

я читал вот про эти:
[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
а вообще если тебе охота "побоксировать" - то иди ты лесом... я достаточно ясно выразился?