ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

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

 

29
IntelXeon @IntelXeon
Сразу скажу пару вещей (не обязательно к прочтению) :
Гуглил, много/долго гуглил, очень долго гуглил, за 5 дней лопнуло 4 капилляра в глазах, сидел по ~20 часов за компом под бензоатом кофеина + было выпито около ~100 грам не разбавленной валерьянки, но так и не нашел решения проблемы.
Поиск на форуме использовал, сколько я тем прочитал точно сказать не могу но очень много. Мануалов/Тем с аналогичными и смежными проблемами тоже тонну прочитал.

Пробовал серверов штук 20 (без преувеличений), пробовал разные как IceCast так и Shoutcast и еще другие названия которых не запомнил (в общем менее популярные).
Пробовал разные плееры, пробовал разные DSP плагины.
Пробовал разные движки Drupal/Joomla/WordPress (Это уже об безвыходности).
Пробовал разные кодировки (cp1251,cp1252,KOI8-R,KOI8-U,ISO 8859-5,UTF-8 и еще штук 15 кодировок разных).
Пробовал сотни вариаций и комбинаций iconv в php и во всех скриптах. И пробовал другие конструкции PHP которые переводят кодировки строк.
Пробовал преобразовывать кодировки файлов через Notepad++.
Пробовал разные браузеры > Netscape Navigator, Safari, Chrome, FireFox, IE, Opera.
Сколько я скриптов перепробовал под все это дело которые выводят статистику на сайт - я не могу сказать, точно могу сказать что больше 20, меньше 50.
Пробовал на другом хостинге проверять, пробовал другие ОС (WinXP/VistaSP2/Win7), пробовал делать все на локальном сервере через WAMP WEB сервер и через Denver.

Ну так вот в чем же суть темы и в чем проблема ?
Собственно что мне нужно сделать ?

Я нарисовал в Photoshop примитивный простенький блок для радио.
Кнопка on/off (работает через PHP скрипты корректно). Кнопка Play для скачки файла для прослушивания в Winamp.
Сделать бегущую строку с права на лево с названием песни которая играет на данный момент.
Все разметил DIV-ами. Строку сделал через тег marquee...

Вот что бы было понятнее изображение блока :


А вот та часть кода :
<marquee behavior="scroll" direction="left" scrolldelay="75" scrollamount="2"><?php include "radio.php"; ?></marquee>
То есть тут нечего необычного. Все работает в общем так как хочу.

НО ! Когда я включаю песню с русскими буквами в названии выходит такое :
К примеру > ДДТ - Просвистела > ??? - ??????????? > (Там где вопросик стоит это буква "и" причем маленькая).
Возьмем к примеру > Король И Шут - Ром > ?????? ? ??? - ??? > (Тут уже без знака вопросика).

Вот скрин с ДДТ - Просвистела :


Захожу на > **********
Вбиваю > ??? - ??????????? он выводит > ДДТ - Просв?стела > То есть буква "и" не расшифровалась.
Вбиваю > ?????? ? ??? - ??? > Король И Шут - Ром > Все нормально.

В обеих случаях выводит под окном надпись :
Как нам пришлось помучиться
CP1252 ? CP1251

PHP файлы Index, и другие изначально в ANSI, пробовал переводить в UTF-8 и во все кирилические кодировки.
Во всех файлах прописан :
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
В движке тоже указан UTF-8, пробовал переводить абсолютно все в 1251/1252 - результат был только в одном случае - буквы "и" маленькие и "Х" большие начали отображаться.

В общем я в отчаянии ! Помогите, посоветуйте, приму материал на любых языках если он поможет мне в решении проблемы, пойду на любые придложения/советы, даже если придется хостить Linux OS из под виртуальной машины. Мне нужно всего то что бы эта строка поддерживала кириллицу по человечески.

ps
Естественно DSP Plug-In/Server пробовал русифицировать.

ps2
Было бы хорошо если бы кто то конструктивный совет дал примерно так (ПРИМЕР) :

Используй в качестве сервера > SHOUTcast Interface 1.0.3
Используй в качестве плеера > Winamp 5.581 Rus Lite
Используй в качестве DSP плагина для плеера > SHOUTcast DSP Plug-in 1.9.1
Поставь на Сервер (этот патч), поставь на Плагин (этот патч).
Используй кодировку страниц сайта : UTF-8
Используй Meta тэг на сайтах : UTF-8
Используй этот PHP скрипт для вывода Offline/Online режима и песни которая играет в данный момент : (Ссылка или Код).

Я уже потому что сума схожу за 13 лет что я сижу за PC я не когда не доходил до такого отчаяния и просьбы в такой форме помочь.

Я уже подготовил тяжелую артиллерию для решения этой проблемы, сделать шапку сайта во флеше, и сделать там вывод через PHP функцию песни которая играет в данный момент.
Но Flash-а человек которому я делаю сайт хочет избежать да и я не очень хочу его использовать в данной ситуации но как альтернативное решение я уже это обдумывал.

Спасибо за внимание, извините за тонну не нужно информации, я на пределе, у меня уже апатия переростающая в депрессию.
Я вообще по специализации CG Дизайнер но в WEB сфере я слаб, моя специализация в общих чертах это 3D.

ps3
Кстати я уже поднимал одну тему в которой я не пришел к решению и решил забросить эту идею с выводом песни, но вот необходимость сделать это настигла меня...
Ссылка на тему > **********
Даже скрипт что у людей работает по человечески у меня не заработал :(

ps4
Ах да... Код сайта/шаблона валидный, без ошибок вообще (не учитывая тэга marquee).

Все это садо-мазо пробовал и без шаблона и без движка чистый PHP и чистая страница. Все то же самое.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
используйте кодировку 1251 или переконфертируйте с 1251 на utf8
я так понял что сервер shoutcast
чтоб точно знать из какой кодировки конвертировать зайдите на страницу shoutcast и меняйте кодировку страницы до тех пор пока не будет нормально отображатся.
Если все ровно не получится дайте ссылку на поток чтоб я убедился что сделали все правильно ))

29
IntelXeon @IntelXeon
Постараюсь подробнее описать :
На данный момент все испытания провожу на локальном компьютере с динамическим-внешним IP из под роутера.

Восстановил систему через Acronis True Image и сейчас все начинаю делать заново.

ОС > Win7 x64 PRO RUS [Со всеми свежими апдейтами, лицензия с MSDN].
Локальный WEB сервер > WAMP [Скачал с офф сайта самую свежую версию, настройки стандартные, установил по стандартному пути на системный диск].
Взял эту статью > **********

Начинаю делать поэтапно >

1.Устанавливаю Winamp 2.65 Lite x86 [По стандартному пути, на системный диск]
(Установился без проблем, до этого момента использовал самый свежий Winamp 5.581 Lite, сейчас решил полностью по инструкции сделать).
2.Устанавливаю Shoutcast Server 1.9.5 [По стандартному пути, на системный диск]

Далее читаю пункт :
Сервер SHOUTcast DNAS изначально работает только с англоязычной кодировкой windows-1252 и не поддерживает русскоязычную кодировку windows-1251, для решения этой проблемы надо заменить оригинальный пусковой файл сервера SHOUTcast модифицированным. Оригинальный файл лежит в корне установленного SHOUTcast Server. ([тут ссылка]sc_serv.exe)

3.Устанавливаю патч на сервер (Выключаю сервер, точнее я его и не включал, заменяю .exe файл сервера).
(В настройках сервера меняю порт, пароль, максимальное кол-во пользователей)
4.Устанавливаю Shoutcast DSP плагин 1.8.2b.
5.Устанавливаю патч на DSP плагин (заменяю dsp_sc_dll файл).
В общем далее запускаю все, настраиваю DSP плагин на 128кб-stereo-44.1, в общем все как часики четко запускается.

По адресу > localhost:6898 > песни отображаются корректно на русском без ошибок.
По адресу > 188.115.177.146:6898 > тоже самое > только вот у меня FireWall+Router стоит на дому и я не пробрасывал порты что бы выпустить вещание в инет так как мне это не нужно было.
(Но если надо вам то могу начать вещание у человека у которого будет стоять радио в итоге, но у него будет точь в точь как и у себя я экспериментирую).
На сетевых компьютерах все работает как часики и слышно и на сайт заходит.

Так перехожу к выводу информации об песенке на сайт...

Захожу в тему на этом форуме где выкладывают скрипты для Shoutcast.
Беру любой скрипт что приглянулся (перепробовал все).

А именно этот > ********** "Online / Offline Now Playing Stats"

Создаю на сервере index.txt > переименовываю в index.php > сам файл на данный момент в кодировке ANSI.
Вставляю в него обычный валидный код :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
[b]<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">[/b]
<title>
Mikul Freestyle
</title>
</head>
<body>
</body>
</html>

И в body вставляю :
<?php include "radio_stats.php"; ?>
Чуть позже поменял мета тег на windows-1252

Так же не забываю настроить конфиг файл PHP скрипта, ip/port/pw.

Кодировки файлов скрипта не трогаю.

Ну вот и все начинает отображаться :
[Кнопка Online]
Stream Title: Unnamed Server
Listeners: 0 / 5
Bitrate: 128kbps
Current Song: ??? - ???????????

Там где вопросик стоит там буква "и" только маленькая.

Ну собственно вот и все. Какие только я кодировки не пробовал вставлять в META тэг страницы. Оставлю пока UTF-8 и подожду совета :)

А внутри скрипт файлов в Мета тегах кодировки указанны : windows-1252
Все же поставлю вместо UTF-8 windows-1252 - и посмотрю так же пробовал как и говорил все остальные кодировки.
Да в общем то и разницы нету я около 20 кодировок разных пробовал и разные вариации и без патчей и другие сервера и тонну других браузеров. Ну в общем все как в первом сообщении описал.
Так же пробовал все кодировки в UTF перевести и все кодировки всех файлов тоже в UTF перевести. А потом и в Windows1252 и Windows1251.. В общем замучился я.

Кстати с вашим скриптом что у вас на сайте стоит тоже пробовал. Тоже самое.

Спасибо за внимание !

ps

Пробросил порты вроде бы у людей с моего же провайдера работает все корректно. Люди с вшнешки могут ли подключится понятия не имею. Но пока поставлю пусть крутит какие то русские песенки.

ps2
Статистика выводится на **********/ - не уверен что будет тоже работать с внешки.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
много текста не по сути ))
если на странице шоуткаста при нормальном отображении тегов стоит некая кодировка надо ту же самую ставить на сайт (мета тег)
если все сделано верно - должно работать

еще проблема можеит быть - в какой кодировке сохранен файл сбора статистики

29
IntelXeon @IntelXeon
Я старался максимально информативно изложить что и как я делал. Если нужна какая либо еще информация я отвечу.

Я уже говорил что я пробовал переводить все файлы скриптов/index файлы/мета теги/мета теги в скриптах - одновременно в Windows1251 потом в Windows1252 потом в UTF-8 и так деалее.

В общем как радио так и сайт пока висят на внешку можно зайти и посмотреть.

много текста не по сути ))

Скажите что по сути написать - напишу.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
у меня дефолтная кодировка utf-8, все скрипты соотвественно в той же кодировке.
Комуто уже делал скрипт для показа что такое возможно ))
вот оно и у меня работает нормально
Показать текст

29
IntelXeon @IntelXeon
Перевел файлы в UTF-8, в META вбил тоже UTF-8, поставил ваш скрипт теперь оно все название чисто вопросиками выбивает :
??? - ??????????? > Это > ДДТ - Просвистела.

Странно. Попробовал в разные кодировки все погонять так и остались вопросики oO...

ps
Декодер говорит что это UTF-8 но не декодирует их.

ps2
Вы какие то патчи ставили на сервер и плагин ? Какие у вас вообще версии сервера и плагина с винампом ?
Может у меня сильно старые версии сервера.

ps3

Были бы на радио только анлоязычные песни с названиями в латинице я бы уже забил. Но так крутит когда латинциа все норм а когда кириллица ужас.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
IntelXeon пишет:

Перевел файлы в UTF-8, в META вбил тоже UTF-8, поставил ваш скрипт теперь оно все название чисто вопросиками выбивает :

ну и чем мы слушаем ??зачем тег менять было? Я привел готовый работающий (!) пример, а вы его испортили... :P

29
IntelXeon @IntelXeon
tarasian666, я его не испортил. Я попробовал сразу так как вы сказали. Потом уже начал пробовать другие варианты.

ps

Пробовал cp1251/cp1252/Windows-1251/Windows-1252/UTF-8. Все равно знаки вопросов.

Сам файл тоже гонял в разные кодировки ANSI/UTF-8/Windows-1251 - ноль...

В общем я продолжаю делать тоже самое без результатно что и делал на протяжении недели.

Уже люди через TeamViewer подключались и сами делали все - говорили - Аномалия.

ps2

Всегда пересоздаю .txt файл и в него чистый текст вбиваю потом делаю с него php что бы все танцы с бубном не отражались на следующих попытках.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
ненадо изобретать велосипед.
в мета теге должна быть 1251 и скрипт желательно сохранять в utf8

у человека такая же проблема была и говорил что все перепробовал (ну точно как вы) а я ему на своем сервере показал даный скрипт с его ip и портом вещания, когда он увидел нормальную кирилицу - замолчал...

29
IntelXeon @IntelXeon
tarasian666, хорошо сейчас уже в 100-ый раз попробую все сделать заново и отпишусь в этом же сообщении.

6245
Тарас @tarasian666
убедитесь чтоб браузер распознал кодировку правильно

29
IntelXeon @IntelXeon
Так поэтапно что я делал :
1.Создал текстовый файл script.txt , переименовал его в script.php, вбил в него ваш скрипт который начинается от <?php и заканчивается ?> (включая естественно эти знаки разметки начала/конца скрипта).
2.Создал текстовый файл index.txt , переименовал его в index.php, вбил в него стандартную HTML разметку html/head/title/body, в мета тег вбил cp1251, в body вбил <?php include ('script.php') ?>.

На этом этапе оба файла в ANSI кодировке.

Запустил - Crome/Safari/Opera/IE/FireFox/Netscape - зашел на localhost - во всех браузерах кроме оперы и IE значки вопросиков а в опере и IE квадратики.

Далее взял в Notepad++ перевел файл скрипта в UTF-8 > Тоже самое.
Далее в Notepad++ перевел Index файл в UTF-8 > Тоже самое.

Примечание ! > Первый раз делал скрипт прямо в теле index файла но результат тот же был. Латиница корректно работает, кириллица не корректно.
И как уже и говорил в чарсет когда вбивать пробовал другие кодировки брал перегонял кодировки всех файлов в эти же что и вбивал.

PS
Может все же из за этих патчей это которые я поставил на Сервер и Плагин ?

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
создайте файл идентичный предоставленому скрипту "и смотрите в браузере на него" +
tarasian666 пишет:

убедитесь чтоб браузер распознал кодировку правильно

29
IntelXeon @IntelXeon
Как убедится что браузер распознает кодировку правильно ?
Я проверил во всех браузерах что есть на компьютере и на других локальных компьютерах проблема только у меня такая, на других сайтах все нормально и не когда у меня не вылетали такие "кракозябры".

PS
Создал текстовый файл index.txt , переименовал его в index.php, вбил в него - четко то что вы дали в теге "КОД" выше по теме начиная от "<html>" заканчивая "?>" - то есть все.
Причем уже сделал все не через Notepad++ а через стандартный блокнот и сохранил. Все точь в точь как и было раньше.

Вы тоже ставили на сервер и плагин патчи что бы кириллица работала ? А то вдруг это из за них и их не нужно ставить...

PS2

Блин может мне записать на Camtasia Studio что я делаю :D Я уже не знаю как вам объяснить что я делаю точь в точь что вы говорите.

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
если на странице шоуткаста при кодировке 1251 кирилица отображается верно тогда плагин работает нормально и проблема не в нем.

29
IntelXeon @IntelXeon
tarasian666, да на странице шоуткаста написано в мета теге windows-1251 и работает там все отлично что латиница что кириллица работает корректно.

6245
Тарас @tarasian666
вобще то там в мета теге пишет 1252 (сам только что посмотрел) а что пишет браузер, какую кодировку он использует на странице?

29
IntelXeon @IntelXeon
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

OMG ! ! ! ! Сделал ! ! ! ! Боже мой... Хоть так работает.

Короче я установил движок WordPress русский. Положил индекс файлы в папку тем, назначит их как тему, и в настройках движка выбрал cp1251 и заработало !
Боже мой... Хоть как то ! Но придется сайт держать на движке... Ну нечего... Хоть что то ! Блин 7 дней мучался и в итоге из под движка а не чистого Апача запахала кодировка...

Буду уже хоть как то делать сайт на движке вордпреса тогда...

Отредактировано IntelXeon - 29.10.2010
6245
Тарас @tarasian666
???????????° ???·???»?? ???°?????? shoutcast ? ???°?? ???? ???µ?????»???? ?????????????????° 1252 ???·???µ???????? ?µ?µ ???µ?»???·??!
Показать текст