powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вместо UTF-8 получаем ISO-8859-1.
12 сообщений из 12, страница 1 из 1
Вместо UTF-8 получаем ISO-8859-1.
    #33309702
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        request.setCharacterEncoding("UTF-8");
	HttpSession session = request.getSession(true);
        ........
	filter = request.getParameter("filter");

         System.out.println( "Filter: " + filter); //выводит ерунду.
         String nFilter =  new  String(filter.getBytes("ISO-8859-1"), "UTF-8");
         System.out.println( "Filter 2: " + nFilter); //выводит что надо.
то есть getParameter интерпретирует параметр в кодировке ISO-8859-1 не смотря на request.setCharacterEncoding("UTF-8"). Перед setCharacterEncoding вызовов request.getParameter не было.
Это под Линукс. Под Вин. работает нормально.
Может кто-то объяснить где собака зарыта?
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33310232
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lubomyr.Имеем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        request.setCharacterEncoding("UTF-8");
	HttpSession session = request.getSession(true);
        ........
	filter = request.getParameter("filter");

         System.out.println( "Filter: " + filter); //выводит ерунду.
         String nFilter =  new  String(filter.getBytes("ISO-8859-1"), "UTF-8");
         System.out.println( "Filter 2: " + nFilter); //выводит что надо.
то есть getParameter интерпретирует параметр в кодировке ISO-8859-1 не смотря на request.setCharacterEncoding("UTF-8"). Перед setCharacterEncoding вызовов request.getParameter не было.
Это под Линукс. Под Вин. работает нормально.
Может кто-то объяснить где собака зарыта?

Метод не GET случаем?
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33310855
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozheyko_dМетод не GET случаем?

В данном случае GET.
Проблемма в том что с POST та же ситуация.
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33310896
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для response почему не выставили кодировку?
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311077
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozheyko_dА для response почему не выставили кодировку?

Везде стоит
response.setContentType("text/html; charset=UTF-8");
----
Дело в том что на сервер приходит в UTF-8, а сервлет думает что ISO-8859-1.
Вообще мне кажется что проблемма где-то в жосткой кодировке JBOSSa или JVM данной версии,. или библиотек..
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311163
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lubomyr. mozheyko_dА для response почему не выставили кодировку?

Везде стоит
response.setContentType("text/html; charset=UTF-8");
----
Дело в том что на сервер приходит в UTF-8, а сервлет думает что ISO-8859-1.
Вообще мне кажется что проблемма где-то в жосткой кодировке JBOSSa или JVM данной версии,. или библиотек..

А покажите весь метод сервлета, в котором это происходит.
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311260
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozheyko_dА покажите весь метод сервлета, в котором это происходит.

Вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
	 protected   void  doGet(HttpServletRequest request,
			HttpServletResponse response)  throws  ServletException, IOException {
		//TODO Method stub generated by Lomboz
		request.setCharacterEncoding("UTF-8");
		processRequest(request, response);
		
	}

	 protected   void  doPost(HttpServletRequest request,
			HttpServletResponse response)  throws  ServletException, IOException {
		//TODO Method stub generated by Lomboz
		request.setCharacterEncoding("UTF-8");
		processRequest(request, response);
	}



// processRequest очень большой, привожу только часть которая выполнятся при данных условиях

 protected   void  processRequest (HttpServletRequest request, HttpServletResponse response)
     throws  ServletException, IOException{
	String buildUrl= null ;
	String objectId= null ;
	String filter= null ;
	request.setCharacterEncoding("UTF-8");
	HttpSession session = request.getSession(true);
	request.setCharacterEncoding("UTF-8");
	String userAction = request.getParameter("useraction");
	objectId = request.getParameter("id");
	filter = request.getParameter("filter");
	 if  (userAction== null ) {buildUrl=LOGIN_SCREEN;}
	 else {

// куча ifов ...
		
		 if  (userAction.equals("setfilter")){
			buildUrl=ITEMS_SCREEN;
			response.setContentType("text/html; charset=UTF-8");
			System.out.println( "Filter: " + filter);  //ерунду выводит
			//filter=java.net.URLEncoder.encode(filter,"UTF-8"); 
			//response.sendRedirect(response.encodeURL(ITEMS_SCREEN+"?filter="+ filter));
			System.out.println( "Request encoding: " + request.getCharacterEncoding());//UTF-8

			System.out.println( "Responce Encoding: " + response.getCharacterEncoding() ); //UTF-8
			System.out.println( "Locale: " + java.util.Locale.getDefault().getCountry() );
						
			javax.servlet.RequestDispatcher rd2 = getServletContext().getRequestDispatcher(ITEMS_FILTERED);
			String nFilter =  new  String(filter.getBytes("ISO-8859-1"), "UTF-8");
						
			request.setAttribute("filter",filter);
			System.out.println( "Filter encoded var 2 : " + nFilter); //то, что надо!
			
			rd2.forward(request,response);
			
			 return ;
		} 
// blah blah blah..


	}

...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311373
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, только сейчас заметил, что пишете в System.out
т.е. вы читаете то что JBoss на консоль выводит или в логе?
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311425
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozheyko_dБлин, только сейчас заметил, что пишете в System.out
т.е. вы читаете то что JBoss на консоль выводит или в логе?

В данном случае на консоль или лог. Но это я вывожу с целью дебага, так как с параметром было что-то "не то" :(
Этот параметр я потом отобржаю на JSP, где он также выглядит некрасиво.
Передаю из сервлета
Код: plaintext
1.
2.
3.
4.
response.setContentType("text/html; charset=UTF-8");
request.setAttribute("filter",filter);
javax.servlet.RequestDispatcher rd2 = getServletContext().getRequestDispatcher(ITEMS_FILTERED);
rd2.forward(request,response);
показываю:
Код: plaintext
1.
<b>Фильтр</b>  <input type="text" name="filter" size="50" width="20%" value="<%=filter%>"/>
Страница в UTF-8:
Код: plaintext
1.
2.
3.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  import ="java.sql.*,
 javax.sql.*, javax.naming.*, org.apache.commons.beanutils.*" %>
.....

Кстати, проблемма там где Get, я с Post не проверял. Ведь для всякого рода фильтров предпочтительнее Get...
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33311497
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Post работает нормально. Проблемма с Get!
Хорошо было бы ее решить. Под Windows все работает ОК.
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33312373
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lubomyr.
...
Страница в UTF-8:
Код: plaintext
1.
2.
3.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  import ="java.sql.*,
 javax.sql.*, javax.naming.*, org.apache.commons.beanutils.*" %>
.....
...


Это ещё не всё. Чтобы указать request-encoding лучше явно его вызови:
Код: plaintext
1.
2.
3.
4.
5.
6.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  import ="java.sql.*,
 javax.sql.*, javax.naming.*, org.apache.commons.beanutils.*" %>
<%
request.setCharacterEncoding("UTF-8");
System.out.println(request.getParameter("filter"));
%>
...
Рейтинг: 0 / 0
Вместо UTF-8 получаем ISO-8859-1.
    #33312490
Lubomyr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mozheyko_d
Это ещё не всё. Чтобы указать request-encoding лучше явно его вызови:

Так тоже сделал. В каждой JSP-шке. Без результата.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вместо UTF-8 получаем ISO-8859-1.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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