Кодировка строк

Всем привет.

Вопрос связан с перекодировкой строк из DOS в Win кодировку. У меня есть текстовый файл в кодировке DOS, я читаю из него данные и их обробатываю. Соответственно выводятся краказябры :) Как мне переконвертировать в win кодировку? Может есть у кого пример?

Спасибо!

Нравится

3 комментария

Попробуйте использовать эту функцию:

function dos2win(text){ 
    var out = "" 
    var dos="Ђ ЃЎ‚ўѓЈ„¤…Ґрс†¦‡§€Ё‰©ЉЄ‹«Њ¬Ќ-Ћ®ЏЇђа‘б’в“г”д•е–ж—з˜и™йљк›лњмќнћоџппя" 
    var win="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяя " 
    for (i=0; i<text.length; i++) { 
        var ch = text.charAt(i); 
        var index = dos.indexOf(ch) 
        if (index >= 0){ 
            ch = win.charAt(index); 
        } 
        out = out + ch; 
    } 
    return out; 
} 

Вот что у меня получалось:

Спасибо!
Идея мне понятна.

Я пробовал вот так:

function convert(stroka)
{
	var outStreamW = new ActiveXObject("ADODB.Stream");
	var outStreamA = new ActiveXObject("ADODB.Stream");
	outStreamW.Type = 2;
	outStreamW.Charset = 'cp866';
	outStreamW.Open();
	outStreamW.WriteText(stroka);
	outStreamW.Position = 0;
	outStreamA.Type = 2;
	outStreamA.Charset = 'windows-1251';
	outStreamA.Open();
	outStreamW.CopyTo(outStreamA);
	outStreamA.Position = 0;
	var res = outStreamA.ReadText;
	outStreamW.Close();
	outStreamA.Close();
	return res;
}

но чтото пока не получилось.

Я пробовал Ваш вариант. У меня тоже не получилось, пробовал перебирать разные варианты. Получалось только если делать промежуточное сохранение в файл. Видимо не все так прозрачно с ADODB.Stream.

Показать все комментарии