В начале html - кода файла с хорошей кодировкой стоит:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
в неудачных файлах кодировка "windows-1251" может быть другой.
Если файл в кодировке koi8-r, то можно открыть этот файл с помощью блокнота, заменить кодировку на windows-1252 (или просто выбросить эту строчку) и сохраните его в тот же самый файл в кодировке ANSI.
Этот процесс можно выполнить скриптом следующим образом.
Делаем замену кодировки (здесь x это html - код)
x=x.replace(/koi8-r/gi,'windows-1251')
Меняем символы на их эквиваленты в виде: %u0408
x=escape(x)
Меняем конструкции вида %u0408 на соответствующие им символы (эта замена подобрана мною вручную, она не полная и не совпадает со спецификацией, но для документов, сохранённых на компьютере, даёт хороший результат).
/////////////////////// x=x.replace(/%09/g,'')//это табуляция /////////////////////// // x=x.replace(/%0A/g,'\n') x=x.replace(/%0D/g,'\r') x=x.replace(/%20/g,' ') x=x.replace(/%21/g,'!') x=x.replace(/%22/g,'"') x=x.replace(/%23/g,'\#') x=x.replace(/%24/g,'\$') x=x.replace(/%25/g,'%') x=x.replace(/%26/g,'&') x=x.replace(/%27/g,'\'') x=x.replace(/%28/g,'(') x=x.replace(/%29/g,')') x=x.replace(/%2C/g,',') x=x.replace(/%3A/g,':') x=x.replace(/%3B/g,';') x=x.replace(/%3C/g,'<') x=x.replace(/%3D/g,'=') x=x.replace(/%3E/g,'>') x=x.replace(/%3F/g,'?') x=x.replace(/%5B/g,'[') x=x.replace(/%5C/g,'\\') x=x.replace(/%5D/g,']') x=x.replace(/%7B/g,'{') x=x.replace(/%7C/g,'|') x=x.replace(/%7D/g,'}') x=x.replace(/%7E/g,'~') // // x=x.replace(/%u0408/g,'ё') x=x.replace(/%u0410/g,'ю') x=x.replace(/%u0411/g,'а') x=x.replace(/%u0412/g,'б') x=x.replace(/%u0413/g,'ц') x=x.replace(/%u0414/g,'д') x=x.replace(/%u0415/g,'е') x=x.replace(/%u0416/g,'ф') x=x.replace(/%u0417/g,'г') x=x.replace(/%u0418/g,'х') x=x.replace(/%u0419/g,'и') x=x.replace(/%u041A/g,'й') x=x.replace(/%u041B/g,'к') x=x.replace(/%u041C/g,'л') x=x.replace(/%u041D/g,'м') x=x.replace(/%u041E/g,'н') x=x.replace(/%u041F/g,'о') x=x.replace(/%u041F/g,'о') x=x.replace(/%u0420/g,'п') x=x.replace(/%u0421/g,'я') x=x.replace(/%u0422/g,'р') x=x.replace(/%u0423/g,'с') x=x.replace(/%u0424/g,'т') x=x.replace(/%u0425/g,'у') x=x.replace(/%u0426/g,'ж') x=x.replace(/%u0427/g,'в') x=x.replace(/%u0428/g,'ь') x=x.replace(/%u0429/g,'ы') x=x.replace(/%u042A/g,'з') x=x.replace(/%u042B/g,'ш') x=x.replace(/%u042C/g,'э') x=x.replace(/%u042D/g,'щ') x=x.replace(/%u042E/g,'ч') x=x.replace(/%u042F/g,'ъ') x=x.replace(/%u0430/g,'Ю') x=x.replace(/%u0431/g,'А') x=x.replace(/%u0432/g,'Б') x=x.replace(/%u0433/g,'Ц') x=x.replace(/%u0434/g,'Д') x=x.replace(/%u0435/g,'Е') x=x.replace(/%u0436/g,'Ф') x=x.replace(/%u0437/g,'Г') x=x.replace(/%u0438/g,'Х') x=x.replace(/%u0439/g,'И') x=x.replace(/%u043A/g,'Й') x=x.replace(/%u043B/g,'К') x=x.replace(/%u043C/g,'Л') x=x.replace(/%u043D/g,'М') x=x.replace(/%u043E/g,'Н') x=x.replace(/%u043F/g,'О') x=x.replace(/%u0440/g,'П') x=x.replace(/%u0441/g,'Я') x=x.replace(/%u0442/g,'Р') x=x.replace(/%u0443/g,'С') x=x.replace(/%u0444/g,'Т') x=x.replace(/%u0445/g,'У') x=x.replace(/%u0446/g,'Ж') x=x.replace(/%u0447/g,'В') x=x.replace(/%u0448/g,'Ь') x=x.replace(/%u0449/g,'Ы') x=x.replace(/%u044A/g,'З') x=x.replace(/%u044B/g,'Ш') x=x.replace(/%u044C/g,'Э') x=x.replace(/%u044D/g,'Щ') x=x.replace(/%u044E/g,'Ч') // x=x.replace(/%u0456/g,'Ё')
1.2.2011 00.067