Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2010, 22:45
Новичок на форуме
Отправить личное сообщение для Димонка Посмотреть профиль Найти все сообщения от Димонка
 
Регистрация: 13.07.2010
Сообщений: 9

кодирование, страшная штука!
Здравствуйте! У меня возникла следующая ситуация: Я использую для отправки данных на сервер технологию AJAX. Вот часть моего кода:
function ajax(param, id, data) {	
	var req = getXmlHttp()
	req.open('POST', 'indexx.php?param='+param, true)
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
	req.onreadystatechange = function() {
	   if (req.readyState == 4) {
		   if(req.status == 200) {			   			   
			   var jsonData = eval('('+req.responseText+')');
			   var param = jsonData.param;
			       if (param == 'regform') {			       
				   document.getElementById(jsonData.mes_id).innerHTML = jsonData.says;				   
				   }		   
		   }
	   }
    }	
	req.send('data='+data+'&id='+id)
}

Меня всё устраивало, покуда я не ввел в форму отправляемую серву русскую строку текста. Полученная строка сервом имела вот такой вид: кукушкин_литР
В чём дело? мот кто-нибудь знает что это за кодировка? и какой функцией в php можно её перекодировать в норм русские буквы!
Заранее спс)
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2010, 00:24
Аспирант
Отправить личное сообщение для Panzermaus Посмотреть профиль Найти все сообщения от Panzermaus
 
Регистрация: 14.07.2010
Сообщений: 43

Добавьте в ваш скрипт:
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded*!*; charset=utf-8*/!*')
а на вашу страницу:
<meta http-equiv="Content-Type" content="text/html; charset=*!*utf-8*/!*">
Ну, и заодно, сам index.php конвертнуть в utf-8. Только без BOM

Можно и windows-1251 использовать, но чтобы везде было одинаково.
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2010, 05:35
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Panzermaus
Можно и windows-1251 использовать, но чтобы везде было одинаково.
лучше utf-8
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2010, 19:42
Новичок на форуме
Отправить личное сообщение для Димонка Посмотреть профиль Найти все сообщения от Димонка
 
Регистрация: 13.07.2010
Сообщений: 9

спасибо большое! помогло)
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2010, 12:46
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Panzermaus
Только без BOM
а почему без BOM? Я с ним всегда делаю, вроде не было проблем?
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2010, 12:52
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Riim,
если страница в UTF-8 с BOM инклюдится, BOM, оказываясь в середине текста, показывается как закорючки. Больше, вроде, проблем никаких.
Ответить с цитированием
  #7 (permalink)  
Старый 19.07.2010, 14:12
Аспирант
Отправить личное сообщение для Panzermaus Посмотреть профиль Найти все сообщения от Panzermaus
 
Регистрация: 14.07.2010
Сообщений: 43

Riim, subzey, это заморочка php Интерпретатор, зараза, считает BOM началом вывода, даже если сразу за ним идет <?php, и отправляет заголовки. Так что я просто попытался оградить какой-то php-форум от миллионного вопроса "а почему я не могу установить куку (стартовать сессию и т. д.)"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск