Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [AJAX]Кодировка при передаче на сервлет и обратно в контент / 2 сообщений из 2, страница 1 из 1
08.11.2007, 21:28
    #34926485
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[AJAX]Кодировка при передаче на сервлет и обратно в контент
Доброе время суток.
Пишу чат...
Когда передаю пост на русском вопросы одни...

Вот установка кодировки в сервлете Chat
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 response.setContentType("text/html;charset=windows-1251");//пробовал cp1251
        PrintWriter out = response.getWriter();
        
            if (request.getParameter("msg") != null)
                if (request.getParameter("msg").length()> 0 )
                 msg += request.getSession().getAttribute("name").toString() +": "+ request.getParameter("msg").toString() + "<br>";
 .       
 .        

Вот часть кода контента:
Код: plaintext
1.
2.
3.
4.
5.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>IndexOurOnlineGame</title>
</head>

Вот код Ajax:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var ajax = getHTTPRequestObject();
	var process = false;
	var loadPlace;
	function goAjax(_loadPlace, _linkContent) {
		if (!process && ajax){
			this.loadPlace = _loadPlace;
			ajax.open("POST", _linkContent, true);
			ajax.onreadystatechange = processResponse;	
			process = true;
			ajax.send(null);
		}	
	}
	
	function processResponse() {
	  if ( ajax.readyState ==  4  ){		   
			var data = ajax.responseText; 
			document.getElementById(this.loadPlace).innerHTML = data;
			process = false;			
		}else{			
			document.getElementById(this.loadPlace).innerHTML = "loading...";			
		}
	}	

В Ajax надо устанавливать кодировку? Как?
...
Рейтинг: 0 / 0
09.11.2007, 03:43
    #34926718
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[AJAX]Кодировка при передаче на сервлет и обратно в контент
Значение каждого параметра, который будет отправляться, надо закодировать с помощью encodeURIComponent() - он переведет весь текст в utf-представление. А на сервере раскодировать (благо, используется Java - там очень мощные средства).
Дело в том, что для запроса ajax нельзя нигде поменять или поставить кодировку - он всегда передает каждый ситвол двумя байтами, то бишь utf-8. Поэтому либо правильный подход - использование на страницах кодировки utf-8, или извращаться с кодирование/декодированием. Если извращаться, то смотри в сторону escape-кодировки. Вот грамотная статья: http://xhtml.ru/2006/05/25/encodestring/
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [AJAX]Кодировка при передаче на сервлет и обратно в контент / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]