• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема кодировки Javascript + Ajax + Xml + Php

  • Автор темы Reverent
  • Дата начала
R

Reverent

Здравствуйте.
Недавно стал разрабатывать систему обработки и добавления шаблонов на сайт и столкнулся с такой проблемой.
Создаю запрос через XMLHttpRequest на страницу с кодом PHP. Который генерирует XML код. Который в последствии будет обрабатываться JavaScript’ом. Но почему-то не могу получить данные в русской кодировке.
Пишу следующий код в начале php файла:
Код:
header("Content-Type: text/html; charset=windows-1251");
Все начинает работать, пока не добавляю эту строку:
Код:
header("Content-type: application/xml");
Тогда добавляю еще и эту:
Код:
echo '<?xml version="1.0" encoding="WINDOWS-1251" ?>';
Но это не приводит к положительному результату, кодировка все равно не меняться и остается «корявой».
Причем проблема заключается еще в том, что этот проект предназначен для Испанской фирмы, которая будет использовать Английский и соответственно свой родной язык.
Помогите, кто может!!!
 
R

Reverent

<!--QuoteBegin-Gisma+30:06:2007, 07:20 -->
<span class="vbquote">(Gisma @ 30:06:2007, 07:20 )</span><!--QuoteEBegin-->используй utf-8
[snapback]70925" rel="nofollow" target="_blank[/snapback]​
[/quote]

Когда я захожу в блокнот и сохраняю эту страницу в кодировке UTF-8 то PHP жалуеться, что заголовки уже посланы, хотя по сути они у меня стоят первыми в файле...
 
G

Gisma

Это потому что блокнот, следуя стандарту сохраняет в начало файла 2 байта (UTF-8 signature). Он естественно идет раньше тега <?php, а следовательно поступает на вывод до старта пхп.
Поэтому придется поискать редактор, вырезающий UTF-сигнатуры, если твой редактор такого не позволяет, знай его разработчики об пхп не знали либо забыли :-D
А так тебе помогут AkelPad либо Edit Plus (этим я пользуюсь как основным редактором пхп-файлов)
 
R

Reverent

Так... а почему когда я устонавливаю UTF-8 русские буквы превращаются в кракозябру???? - ведь по идеи они должны поддерживаться?
 
G

Gisma

потому что кодировка все-таки не UTF :)


смотри внимательно кодировку могут портить:
- заголовки сервера
- настройки XMLHTTP
- php-скрипт
- переданный xml-документ
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!