Кодировка удаленного скрипта

Рейтинг: 0Ответов: 1Опубликовано: 14.06.2011

Такая вот проблема: сторонний сайт генерирует javascript с нужной мне информацией. Информация включает в себя кириллицу, а скрипт выдается в UTF-8. Мой сайт на windows-1251, поэтому вижу сплошные кракозябры. Подскажите, пожалуйста, как "на лету" переконвертировать скрипт.
Вариант "переконвертировать сайт" не катит - слишком много работы.

Ответы

▲ 1Принят

Проверьте, пожалуйста. Нашел у немцев, поэтому немного не уверен. Но код похож на "тот самый".

function decode_utf8(utftext) {
  var plaintext = ""; var i=0; var c=c1=c2=0;
  while(i<utftext.length) {
     c = utftext.charCodeAt(i);
     if (c<128) {
       plaintext += String.fromCharCode(c);
       i++;
       } else if((c>191) && (c<224)) {
       c2 = utftext.charCodeAt(i+1);
       plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
       i+=2;
       } else {
       c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
       plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
       i+=3;
       }
     }
   return plaintext;
   }

Блин, куда кнопка комментирования опять делась? =/ Еще вопрос, есть ли возможность отследить появление этого div'а? И один ли раз он грузится?

Если один - примерно так (стилем сначала выставляем "display: none;" диву):

function decodeBlock(id) {
  var e = document.getElementById(id);
  if (!e || !e.innerHTML) return false;
  e.innerHTML = decode_utf8(e.innerHTML);
  e.style.display = 'block';
  return true;
  }
var decodingInterval = setInterval((function(){ if (decodeBlock('loadede-from-script')) { clearInterval(decodingInterval); } }), 50);