Показать сообщение отдельно
  #8  
Старый 23.04.2017, 17:57
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
Сообщение

Приветствую.
Не понятно работает способ UTF8ToString.
Я запутался. Интернет не помог.
Повторюсь:
От одного url(РадиоСибирь) , вместо русских букв пишет ромбики в которых вопросительные знаки(латиница - нормально) , от остальных URL, где присутствует кириллица все нормально.

В оригинальном коде из примера: (злощастного url(РадиоСибирь) все нормально, но другие станции(RUS) - кракозябры)
Код:
var
  meta: PAnsiChar;
begin
  meta := BASS_ChannelGetTags(chan, BASS_TAG_META);
  if (meta <> nil) then
  begin
    p := Pos('StreamTitle=', String(AnsiString(meta)));
    if (p = 0) then
      Exit;
    p := p + 13;
    SendMessage(win, WM_INFO_UPDATE, 7, DWORD(PAnsiChar(AnsiString(Copy(meta, p, Pos(';', String(meta)) - p - 1)))));
  end;

С костылем, из всех имеющихся станций с кириллицей , нормальные, читаемые слова.
А "РадиоСибирь" ересь.
Код:
var
  meta: PAnsiChar;
  p: Integer;
  S : string;
begin
  meta := BASS_ChannelGetTags(Channel, BASS_TAG_META);
  if (meta <> nil) then
    begin
      S := UTF8ToString(meta);
      p := Pos('StreamTitle=', s);
      if (p = 0) then
        Exit;
      p := p + 13;
      UpdateWin(3, PChar(Copy(S, p, Pos(';', S) - p - 1)));
    end;

Куда рыть?
PS: проверил эту станцию в WMP, вместо исполнителя и названия песни только название станции.

Что за кодировка???
Ответить с цитированием