кодировка
возможно ли перевести текст с помощью JS в UTF8 и обратно в Windows-1251??
Кстати, в JS текст изначально в UTF.
В нете нашел много вариантов решения данной проблемы но не один мне не показался простым.
Вот пытаюсь сам )
[HTML]<script language="javascript">
var win = new Array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
var utf = new Array('Рђ','Р‘','Р’','Р“','Р”','Р•','РЃ','Р–','Р—','Р˜','Р™','Рљ','Р›','Рњ','Рќ','Рћ','Рџ','Р ','РЎ','Рў','РЈ','Р¤','РҐ','Р¦','Р§','РЁ','Р©','РЄ','Р«','Р¬','Р','Р®','РЇ','Р°','Р±','РІ','Рі','Рґ','Рµ','С‘','Р¶','Р•','Рё','Р№','Рє','Р»','Рј','РЅ','Рѕ','Рї','СЂ','СЃ','С‚','Сѓ','С„','С…','С†','С‡','С€','С‰','СЉ','С‹','СЊ','СЌ','СЋ','СЏ');
function utfdecode(str) {
//$wintext=str_replace($utf,$win,$str);
return wintext;
}
document.getElementById('test_utf8').innerHTML=utfdecode("Вот здесь utf8 win текст");
</script>
<div id="test_utf8"></div>[/HTML]
Результатом должен быть перевод с utf в win кодировку
Вот только как заменить все по аналогу пхп $wintext=str_replace($utf,$win,$str); ??
P.S. если задумка не правильна то укажите пожалуйста на ошибку в моей логике
win-1251:
А-Я: 192-223
а-я: 224-255
Ёё: 168, 184
utf-8:
А-Я: 1040-1071
а-я: 1072-1103
Ёё: 1025, 1105
т.е. здесь можно сделать простое вычитание.
Другое дело, что ты хочешь этим добиться?
В итоге все равно не получится однобайтной строки, а получится utf-строка с символами имеющими соответсвтующие коды из win-строки.
Для того чтобы пропустить ее через encodeURI и дописать в параметры урла, это подойдет. Для каких то других вещей не знаю.
вот не как не получается перекодировать функций правельных не знаю
пмогите кто-то закончить
Цитата:
function utfdecode(utftext){
var wintext="";
for (i=0; i<utftext.length; i++){
//wintext += utftext.charCodeAt(i) + " ";
}
return wintext;
}
var wintext="";
for (i=0; i<utftext.length; i++){
//wintext += utftext.charCodeAt(i) + " ";
}
return wintext;
}