javascript, problem with charsets

Статус
В этой теме нельзя размещать новые ответы.

Витюшон

Создатель
Регистрация
6 Авг 2007
Сообщения
23
Реакции
1
добрый день!
Появилась проблемка с кодировками в javascript.
Сайт построен на utf-8, код яваскрипта берёт с другого сайта новости и пишет (document.write) в наш сайт. Проблема в том, что данные которые записывает яваскрипт далеко не в utf-8 :) а в win-1251. Как перекодировать данные, чтобы отображались они в утф-8 ?)
HTML:
if( jsopen )
          document.write("<a href=\"javascript:newsbody('"+akm_article[artcnt].url+"');\" class=\"akmhl\">");
       else
          document.write("<a href='"+akm_article[artcnt].url+"' target='_blank' class='akmhl'>");
          document.write(akm_article[artcnt].headline_text+"...</a><br>");
                 // Write the keywords
       document.write("<span class='akmkwdtm'>"+akm_article[artcnt].keywords+"</span>");
       // Write the time stamp
       document.write("<span class='akmkwdtm'>  "+akm_article[artcnt].harvest_time+"<br> <br></span>");
примерно так выглядит кусочек кода по получению данных с другого сайта.
нашёл такую функцию:
HTML:
function win2unicode(str) {
   var charmap   = unescape(
      "%u0402%u0403%u201A%u0453%u201E%u2026%u2020%u2021%u20AC%u2030%u0409%u2039%u040A%u040C%u040B%u040F"+
      "%u0452%u2018%u2019%u201C%u201D%u2022%u2013%u2014%u0000%u2122%u0459%u203A%u045A%u045C%u045B%u045F"+
      "%u00A0%u040E%u045E%u0408%u00A4%u0490%u00A6%u00A7%u0401%u00A9%u0404%u00AB%u00AC%u00AD%u00AE%u0407"+
      "%u00B0%u00B1%u0406%u0456%u0491%u00B5%u00B6%u00B7%u0451%u2116%u0454%u00BB%u0458%u0405%u0455%u0457")
   var code2char = function(code) {
               if(code >= 0xC0 && code <= 0xFF) return String.fromCharCode(code - 0xC0 + 0x0410)
               if(code >= 0x80 && code <= 0xBF) return charmap.charAt(code - 0x80)
               return String.fromCharCode(code)
            }
   var res = ""
   for(var i = 0; i < str.length; i++) res = res + code2char(str.charCodeAt(i))
   return res
}
но что-то всё равно не получается =( помогите пожалуйста, сам в js не силён :(
 
Я бы не стал заморачиваться с JS. Выдираем что нужно с сайта донора PHP`ой записываем в файл на своем серваке, предварительно сконвертировав iсonv`ом в нужную кодировку. Данные выводим своим шаблоном из PHP, а не JS.
Плюсы этого решения:
  1. К сайту донору происходит обращение один раз - меньше шанс, что донор пропалит твои обращения
  2. Производительности твоего сайта не зависит от сайта донора, он (донор) ведь может лечь и положить твой сайт
  3. продвинутый пользователь посмотрев в JS не увидит откуда ты тащишь данные
 
  1. К сайту донору происходит обращение один раз - меньше шанс, что донор пропалит твои обращения
этот сервис сам предоставляет код для обращения к нему за новостями, так что ничего не пропалит :)

решил делать как вы предложили, только немножко видоизменю
1) пингуем сервер, если всё ок то читаем пхпшкой данные с него
2) iconv перекодировка

с сохранением новостей у себя решил не заморачиваться, клиенту хочеться чтобы новости были актуальными вплоть до 5 секунд :))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху