Здравствуйте впервые использую CMS Drupal.
Скачал самую свежую версию, скачал русификацию, установил CMS с базой данных в UTF-8.
Настроил, все устраивает, все прекрасно.
Собственно у меня стоит Радиосервер (Shoutcast DNAS 1.9.8) через PHP скрипт он выводит состояние радиосервера и статистику (сколько слушает человек/online или offline/какой трек играет и тд и тп).
Так вот... Проблема в том что Shoutcast сервер выводит информацию об играющем треке в кодировке windows-1251(cp1251).
А изначально в мета тегах DRUPAL-а стоит UTF-8, 5 минут погуглив я нашел информацию как перевести кодировку.
Собственно меняю файл "common.inc" в папке "includes" переводя кодировку с UTF-8 в cp1251.
Вывод статистики радио начинает корректно работать как с латиницей так и с кириллицей.
А вот весь контент сайта превращается в "кракозябрики" в общем "каракули".
Пожалуйста посоветуйте как сделать что бы вывод информации радио сервера работал корректно и кодировка Drupal отображалась корректно.
ps
Кодировку базы данных MSQL пробовал создавать в cp1251 и устанавливать друпал в нее. Но все так же само работает (или то или то).
Может можно как то еще до вывода информации PHP скриптом преобразовать строку с cp1251 в utf-8 что бы не надо было в Drupal нечего менять ?
Я слыхал про "iconv" в PHP. Но как ни пробовал его использовать нечего не выходило.
Если нужно предоставить PHP скрипт или другую информацию я предоставлю. Благодарю за внимание.
Комментарии
http://www.php.net/manual/en/function.iconv.php
xxandeadxx, то есть решение проблемы все же возможно с применением iconv функции ?
что-то этому мешает?
Мешает лишь отсутствие знаний PHP.
Я не понимаю куда прописать iconv.
Вот допустим весь текст PHP Скрипта :
<?php
$fp = [user=fsockopen]fsockopen[/user]($ip,$port,$errno,$errstr,1);
$ip = "mikul.dyndns-free.com";
$port = "8000";
if (!$fp)
{
$listeners = "0";
$error = "1";
}
else
{
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
while (!feof($fp))
{
$info = fgets($fp);
}
$info = str_replace('<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>', "", $info);
$info = str_replace('</body></html>', "", $info);
$stats = explode(',', $info);
if (empty($stats[1]) )
{
$listeners = "0";
$error = "1";
}
else
{
if ($stats[1] == "1")
{
$listeners = $stats[0];
$bitrate = $stats[5];
$song = $stats[6];
}
else
{
$listeners = "0";
$error = "1";
}
}
}
echo
$song;?>
И куда и как тут вставить это :
<?php
$value = iconv('Windows-1251', 'UTF-8', $value);
?>
И что вместо "value" писать "stats" или "song" или методом тыка попробовать повставлять этот код и поменять его атрибуты ?
Ха я сам ответил на свой вопрос. Методом тыка прописал :
$song = iconv('Windows-1251', 'UTF-8', $song);
И все заработало по человечески.
Благодарю за внимание и помощь !