Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   отображение windows1251 в utf-8 сайте в IE 6.0 (https://javascript.ru/forum/css-html-internet-explorer/12527-otobrazhenie-windows1251-v-utf-8-sajjte-v-ie-6-0-a.html)

HelpeR 21.10.2010 18:45

отображение windows1251 в utf-8 сайте в IE 6.0
 
Здравствуйте!
Имеется проблема! На сайте с utf-8 кодировкой имеется
<script src='file.php'></script> который подгружает текст в кодировке windows-1251 и отображает его. Но при отображении текста там каша, а не текст. Как можно решить эту проблему, не подскажите?

monolithed 21.10.2010 18:50

сохранить файл JS как utf-8, либо на стороне сервера перекодирать

HelpeR 21.10.2010 19:20

это тизерная сеть. Заранее не известно, на сайт с какой кодировкой загрузиться текст. Потому если изначально текст будет в utf-8, то на сайтах с windows-1251 тоже будут показываться крякозабли. Эти проблемы возникают только в IE 6.0 а остальные браузеры отображают нормально!

Kolyaj 21.10.2010 19:53

Болеет IE6 этим. Заменяйте русские буквы на юникодные последовательности.

alert('\u041f\u0440\u0438\u0432\u0435\u0442')

HelpeR 21.10.2010 20:06

Kolyaj, спасибо большое!

HelpeR 28.10.2010 20:37

Опять таки проблема!
Имеется php файл с windows-1251 кодировкой который генерируется js код.
var txt = ['строка'];
var txtNode = document.createTextNode(txt[0]);
someElem.appendChild(txtNode);

Js выводится на сайт следующим образом <script src="domain.ru/file.php"></script>
И если сайт на который выводится текст имеет отличную от windows-1251 кодировку, то в место текста выводятся не понятно что!
В php пытался сделать следующее
$cyr = array("А"=>"\u0410","Б"=>"\u0411"); // создал ассоциированный массив и заменил все символы кириллицы на юникод последовательность
$js = "var txt = ["\u0410\u0411"];

Но все равно при выводе этих юникод последовательностей получается каша а не текст, если кодировка отличается от windows-1251
Не подскажите как мне передать текст из php, что бы текст нормально отображался в любой кодировке или хотя бы utf-8
Заранее благодарен!

Kolyaj 28.10.2010 21:32

Должно нормально работать, где-то в другом месте ошибка.

monolithed 28.10.2010 21:34

Как вариант:

1. задать кодировку с помощью header('Content-Type: text/html; charset=utf-8');
2. открыть к примеру NotePad++ и сохранить в той кодировке документ в какой нужно (только без BOM).

HelpeR 28.10.2010 22:39

1)в php файле заголовок кодировки передается
header('Content-Type: text/html; charset=windows-1251');
2) php файл сохранень в кодировке windows-1251

И что интересно при просмотре полученного js кода по ссылке http://domain.ru/file.php то в массиве с текстом не юникод последовательность, а текст.
Т.е. ожидалось увидеть var txt = ["\u0410\u0411"] а показывается var txt=["АБ"];

HelpeR 28.10.2010 22:52

Всем еще раз спасибо! да оказывается ошибка была в php коде и юникод последовательность не выводилась


Часовой пояс GMT +3, время: 07:57.