Проблемы с кодировкой при формирование XML

dvvid

Новичок
Проблемы с кодировкой при формирование XML

Доброго времени суток прошу помочь в следующем вопросе.
В html ввожу любые символы в поле myName. в промежуток времени 1 сек срабатывает JavaScript
и отправляет данные в php файл следующим образом

// Получить имя введенное пользователем в форму
name = encodeURIComponent(document.getElementById('myName').value);
// Обратиться к сценарию quickstart.php на сервере
xmlHttp.open("GET", "quickstart.php?name=" + name, true);
// определить метод который будет обрабатывать ответы сервера
xmlHttp.onreadystatechange = handleServerResponse;
// Послать асинхронный запрос серверу
xmlHttp.send(null);

структура файла quickstart.php
PHP:
<?php
	// Результат будем отправлять в формате XML
	header('Content-Type: text/xml');
	
	// сгенерировать заголовок XML
	echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
	//создаь элемент <response>
	echo '<response>';
	$name = $_GET['name'];
	$userNames = array("DIMA","Slava","ДИМА");
	if (in_array(strtoupper($name), $userNames))
		echo 'Здраствуйте '. htmlentities($name);
	else if (trim($name) == '')
		echo 'Скажи мне как тебя зовут';
	else
		echo htmlentities($name). ', вы мне не знакомы!';
	echo '</response>';		
?>
Если ввожу латиницу то возвращаеться ответ в тех символах которые я вводил в поле myName;
Если кириллица все символы переводяться в utf-8. Например при вводе слова "Привет" передается
строка "%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82" и xml файл не формируется.
Вопрос как в файле quickstart.php данную строку превратить опять в "Привет"?

Все файлы html, js, php писал и на utf-8 и на cp1251 работает одиннаково(iconv не работает в данном примере)
 

fixxxer

К.О.
Партнер клуба
1) используй везде utf8. 1251 имеет смысл только для обратной совместимости со старьем, более никакого
2) rawurldecode
 

dvvid

Новичок
Попробывал функцию работает нормально на таком примере:
PHP:
<?php
    header('Content-Type: text/html');
    $name = $_GET['name'];
    echo rawurldecode($name); 
?>
Но как только в заголовке я указываю header('Content-Type: text/xml'); тоесть меняю тип с html на xml то также как и раньше ошибка остаеться.

Mozilla выдает такую ошибку при чем с использованием функции rawurldecode ни чего не изменилось?

Ошибка синтаксического анализа XML: неопределённая сущность Адрес: http://localhost/ajax/quickstart/quickstart.php?name=Привет Строка 1, символ 66:

-~{}~ 19.01.10 07:21:

-~{}~ 19.01.10 07:21:

Заработало убрал функцию htmlentities() и все стало нормально :)
 
Сверху