Проблема с кодировкой

Главные вкладки

Аватар пользователя IntelXeon IntelXeon 1 ноября 2010 в 7:51

Здравствуйте впервые использую 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 скрипт или другую информацию я предоставлю. Благодарю за внимание.

Комментарии

Аватар пользователя IntelXeon IntelXeon 1 ноября 2010 в 8:53

Мешает лишь отсутствие знаний PHP.

Я не понимаю куда прописать iconv.

Вот допустим весь текст PHP Скрипта :

<?php
$ip 
"mikul.dyndns-free.com";
$port "8000";

    

$fp = [user=fsockopen]fsockopen[/user]($ip,$port,$errno,$errstr,1);
    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" или методом тыка попробовать повставлять этот код и поменять его атрибуты ?

Аватар пользователя IntelXeon IntelXeon 1 ноября 2010 в 8:54

Ха я сам ответил на свой вопрос. Методом тыка прописал :
$song = iconv('Windows-1251', 'UTF-8', $song);

И все заработало по человечески.

Благодарю за внимание и помощь !