Как в IE6 создать новое окно с НУЖНОЙ кодировкой.

 
0
 
JavaScript
ava
guest | 13.10.2004, 10:00
Здравствуйте!
Столкнулся с проблемой.
Вот такой код:
function WinOpen() {
var win_height=screen.availHeight - 90
var win_width=screen.Width -10
var win_dimensions = "toolbar,menubar,scrollbars,status,resizable,height=" + win_height + ", width=" + win_width + ",left=0, top=0"
new_window=window.open("", "SelectedFields", win_dimensions, "left=0, top=0")
// new_window.document.write(text);
new_window.focus
}

создает окно.
Но, IE6 автоматом выбирает кодировку символов UTF-8. А, мне нужно win\koi8-r.
Сразу скажу, что добавление
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=windows-1251"> к text
ожидаемых результатов не даёт.


Заранее благодарен.
Comments (14)
ava
Sardar | 14.10.2004, 01:17 #
Никак не получается получить кракозябры, посмотри что в text лежит, и вообще откуда пришел этот текст.
У document есть свойство charset, измени его на свое.
ava
guest | 15.10.2004, 09:59 #
Доброе время суток, Sardar.

Цитата (Sardar @ 14.10.2004, 01:17)
Никак не получается получить кракозябры

В данном случае ф-ия запускается без аргументов и text внутри ф-ии не определена. Так ведь :-)

Эту ф-ию я привел в усеченном варианте. Для чистоты эксперимента.
Запускаем как есть, идем-> Файл/Сохранить как
получаем -> Кодировка: Юникод ...

Цитата (Sardar @ 14.10.2004, 01:17)
что в text лежит, и вообще откуда пришел этот текст

Реально text формируется другой ф-ией. Которая пишет (привожу фрагмент):

text +='<html>\n'
text +='<head>\n<title>Добавление</title>\n'
text +='<meta http-equiv="Content-Language" content="ru">'
text +='<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=windows-1251">\n'
text +='<link rel="stylesheet" type="text/css" href="http://www/style.css">\n'
text +='<script language="JavaScript" type="text/javascript" charset="windows-1251" src="test.js"></script>\n'
text +='</head>\n<body>\n'

и так далее. text формируется - 100%
А ф-ию WinOpen я запускаю с аргументом text из ф-ии, которая формтрует text -> WinOpen(text)
Вот реальная ф-ия WinOpen:

function WinOpen(text) {
var win_height=screen.availHeight - 90
var win_width=screen.Width -10
var win_dimensions = "toolbar,menubar,scrollbars,status,resizable,height=" + win_height + ", width=" + win_width + ",left=0, top=0"
new_window=window.open("", "SelectedFields", win_dimensions, "left=0, top=0")
new_window.document.write(text);
new_window.focus
}


Теперь повторяем эксперимент.
Запускаем, идем-> Файл/Сохранить как
получаем -> Кодировка: Юникод ...

Вот собственно в чем затык.
ava
guest | 15.10.2004, 10:01 #
Поторопился, забыл представиться Guest это AlexRH
ava
GoodBoy | 15.10.2004, 10:03 #
Цитата (Guest @ 15.10.2004, 10:59)
получаем -> Кодировка: Юникод ...

А что мешает при сохранении выбрать нужную кодировку??? Н-р - Кирилица (Windows)???
Или я что-то недопонял??
ava
guest | 15.10.2004, 10:13 #
Мне не надо сохранять этот документ.
В новое окно загружается динамически формируемая форма, затем значения полей я передаю скрипту на сервере.
Проблема в том, что надо передать в win1251 или koi8-r.

ava
Sardar | 15.10.2004, 10:47 #
Цитата (Guest @ 15.10.2004, 08:59)
получаем -> Кодировка: Юникод ...

Какая кодировка в родительском окне? Может там UTF-8, тогда в окно ты тоже пишешь UTF-8, а кодировку указываешь как Cp1251.
Пока ме могу проверить предположение, я на работе smile Вечером разберусь.
ava
guest | 15.10.2004, 10:56 #
Да, в том-то и дело что та же.


<HTML>
<head>
<TITLE>Заявка на добавление</TITLE>
<META HTTP-EQUIV="content-language" CONTENT="ru">
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=windows-1251">
<script language="JavaScript" type="text/javascript" src="4contra.js"></script>
<link rel="stylesheet" type="text/css" href="http://www/styl.css">
</head>
<body>
ava
guest | 18.10.2004, 13:48 #
Все проблема решена.
Нашел здесь: http://www.machaon.ru/digest/www_board/messages/21736.html
Суть в том, что charset прописывается после document.close()


document.close()
document.charset="нужный charset"

Только так и не иначе.
ava
Sardar | 18.10.2004, 21:10 #
Alex R.H регистрируйся, большой плюс тебе поставлю, за то что ответ сам нашел smile
Что за браузер? У меня IE6.0 SP2, FireFox 1.01, Opera 7.23 - каракули так и не смог получить...
ava
AlexRH | 01.11.2004, 07:59 #
Привет Sardar.
Давно не заглядывал, думал что тема уже закрыта.
Браузер у меня IE6.0 SP2.
А в каком смысле "каракули так и не смог получить... "?
ava
Sardar | 01.11.2004, 11:15 #
Цитата (AlexRH @ 1.11.2004, 06:59)
А в каком смысле "каракули так и не смог получить... "?


В смысле что у меня при любом раскладе правильно отображается русский текст smile
ava
AlexRH | 01.11.2004, 11:41 #
Текст и у меня отображался нормально.
И alert(document.charset) показывал win-1251 Но, при этом данные на сервер передавались в utf-8.
Вот собственно в чем была проблема.
ava
guest | 01.07.2005, 17:09 #
в смысле что
страничка в utf-8
вставляем java который пишет в нее тот-же utf через document.write - ие отображает нормально а мозилла в кодировке по дефолту - в 1251
ava
Sardar | 01.07.2005, 17:16 #
Цитата (Guest @ 1.7.2005, 16:09)
а мозилла в кодировке по дефолту - в 1251

А ты правильно задал meta? Уверен что текст действительно в UTF-8? Уверен что сервак в Content-type зголовке левую кодировку не указывает? И наконец:

Цитата (Guest @ 1.7.2005, 16:09)
java который пишет в нее тот-же utf через document.write

JS не может писать в UTF-8. Потому что прежде чем скрипт начнёт работать, все строки поднимет и перекодирует браузер. JS работает только с юникодом(UCS-2).
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  guest   Sardar   GoodBoy   AlexRH
advanced
Submit