Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2012, 04:16
Новичок на форуме
Отправить личное сообщение для llorangell Посмотреть профиль Найти все сообщения от llorangell
 
Регистрация: 07.08.2011
Сообщений: 8

ajax: проблема с русским языком
Есть кусок кода, который отправляет текст на сервер в php скрипт
$('#msend').click(function(){
	$('#chat').append('<div id="msg" class="msg">Я : '+$('#mtext').val()+'</div>')
	$.post(
		'/chat/ajax.php?act=ngmsg',
		{
			text : $('#mtext').val(),
			rid : rid
		},
		function(data){$('#mtext').val(data)}
	)
})

В php скрипте на данном этапе текст просто возвращается, т.е.:
echo $_POST['text'];

Результат весьма плачевен, ибо на выходе я получаю :
йцукен -> йцукен

В фаербаге смотрю, отправляется вот что:
Код:
Параметры application/x-www-form-urlencoded
text йцукен
Исходный код
text=%D0%B9%D1%86%D1%83%D0%BA%D0%B5%D0%BD
Так-же интересно, что при нажатии на "отправить" в этой строке:
$('#chat').append('<div id="msg" class="msg">Я : '+$('#mtext').val()+'</div>')

Текст из #mtext добавляется нормально, а просто "Я :" так-же коряво: "РЇ"
Все файлы, в том числе и подключаемые, сохранены в формате UTF-8 без BOM, на странице в хедере прописана так-же UTF-8.
Проблема одна. Как добиться нормального отображения русского текста, подскажите!
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2012, 12:11
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

попробуйте пересылать русские строки, перед этим закодировав их с помощью encodeURI (JS) и urlencode (PHP),а после раскодировать с помощью обратных функций decodeURI и urldecode
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2012, 17:19
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Попробуйте на стороне сервера:

echo iconv("windows-1251","utf-8",$_POST['text']);

jQuery вроде как автоматический энкодит строки при отсылке

Последний раз редактировалось Keeper, 29.01.2012 в 17:23.
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2012, 19:49
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

На самом сервере какая кодировка? М.б. ее принудительно в .htaccess прописать?
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2012, 20:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от llorangell
Результат весьма плачевен, ибо на выходе я получаю :
йцукен -> йцукен
ну еще бы вы не получали этого. У вас сервак пашет с кодировкой cp1251 а JS с UTF-8 от того и кракозябли, пропишите как сказал Serg_pnz, ее через .htaccess:
AddDefaultCharset UTF-8

либо в PHP напишите перед выполнением прочих скриптов:
header("Content-type: text/html; charset=utf-8");
mb_internal_encoding( 'utf-8' );

Правда придется весь проект перевести на эту кодировку, включая и БД
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2012, 20:06
Новичок на форуме
Отправить личное сообщение для llorangell Посмотреть профиль Найти все сообщения от llorangell
 
Регистрация: 07.08.2011
Сообщений: 8

огромное спасибо, помогло!
спасибо, devote!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 14:04
ajax уведомления (проблема) okapo AJAX и COMET 7 04.11.2011 10:56
Проблема с ajax Артём Финк AJAX и COMET 7 07.07.2011 21:54
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Проблема с Ajax запросом в IE и Opera flash_uz AJAX и COMET 0 30.04.2009 15:08