- Автор темы
- #1
добрый день!
Появилась проблемка с кодировками в javascript.
Сайт построен на utf-8, код яваскрипта берёт с другого сайта новости и пишет (document.write) в наш сайт. Проблема в том, что данные которые записывает яваскрипт далеко не в utf-8 а в win-1251. Как перекодировать данные, чтобы отображались они в утф-8 ?)
примерно так выглядит кусочек кода по получению данных с другого сайта.
нашёл такую функцию:
но что-то всё равно не получается =( помогите пожалуйста, сам в js не силён
Появилась проблемка с кодировками в 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
}