XMLHttpRequest + Opera + кодировка

$lider

Бывает
XMLHttpRequest + Opera + кодировка

Снаряжаю данные в путь такой функцией:
PHP:
function ajax_write(url){
	if(window.XMLHttpRequest){
		xmlhttp2=new XMLHttpRequest();
		if(xmlhttp2.overrideMimeType){
			xmlhttp2.overrideMimeType('text/xml');
		}
	} else if(window.ActiveXObject){
		try{
			xmlhttp2=new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try{
				xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e){
			}
		}
	}

	if(!xmlhttp2) {
		alert('Cannot create an XMLHTTP instance');
		return false;
	}

	xmlhttp2.open('GET',url,true);
	xmlhttp2.send(null);
}
Вызываю через ajax_write("w.php?m=" + msg);
В файле w.php происходит запись в txt файл.
CHROME 2.0.172.39, IE 8.0.6*, FF2.0* пишут в файл кодировкой Windows-1251 (WIN-1251,CP1251...)
Opera 9.6* - в отличной от Windows-1251 (WIN-1251,CP1251...)
Функция http://tony2001.phpclub.net/misc/detect_charset/detect.phps выдает что данные пришли в кодировке ISO-8859-5
$m = iconv("ISO-8859-5","CP1251",$_GET['m']); не помогает.
Рыл в сторону convert_cyr_string,urldecode,utf8_decode...
Подскажите где ошибка?
 

dimagolov

Новичок
А с какими заголовками и META отдается страница, на которой этот код?

п.с. выяснять какая кодировка надо не функцией, а глазками и головой.
 

$lider

Бывает
to dimagolov
посмотрел livehttpheaders
Transfer-Encoding: chunked

Конвертирую utf8 to win1251
Работает.
В любом случае спасибо.
 

dimagolov

Новичок
$lider, если бы ты отдавал страницу с кодировкой в заголовке, то браузер бы не гадал как кодировать url, а кодировал бы из той кодировки, что страница.
 

$lider

Бывает
Даже передав:
PHP:
...
xmlhttp2.open('GET',url,true);
xmlhttp2.setRequestHeader("Accept-Language", "ru, en");
xmlhttp2.setRequestHeader("Accept-Charset", "windows-1251");
xmlhttp2.overrideMimeType('text/xml; charset=windows-1251');
xmlhttp2.send(null);
...
Я не получаю данные в windows-1251
 

dimagolov

Новичок
$lider, ты тупишь. передавать надо кодировку страницы, С КОТОРОЙ делается запрос, чтобы браузер мог догадаться, какая кодировка "родная" для сервера и соответственно из какой надо делать urlencode.

-~{}~ 27.08.09 10:43:

передавать от СЕРВЕРА клиенту имелось в виду
 

$lider

Бывает
Ну если верно понял, то в заголовках станицы, с которой делаю запрос XMLHttpRequest проставлено <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">

-~{}~ 27.08.09 16:55:

Почитал немного здесь http://xmlhttprequest.ru/#encoding
Вроде помогло...
 
Сверху