powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кракозябы при переходе из сервлета на jsp
54 сообщений из 54, показаны все 3 страниц
Кракозябы при переходе из сервлета на jsp
    #39444390
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!
собственно сабж, не могу понять как так...
при этом в сервлете
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
...
response.setContentType(CONTENT_TYPE);
response.setCharacterEncoding("utf-8"); //для полного счастья добавил и эту строку :)

...

request.getRequestDispatcher("newjsp.jsp").forward(request, response);



дальше jsp

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>бла бла бла</h1>
    </body>
</html>



и получаю в браузере ��� ��� ���

хотя браузер говорит что используется юникод

кракозябы появляются только при переходе из сервлета а прямой переход типа <a href> норм отображаются страницы

ради интереса изменил response.setCharacterEncoding("utf-8"); на response.setCharacterEncoding("cp1251");

все норм заработало вот только вопрос как так получается?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444415
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарвсе норм заработало вот только вопрос как так получается?
ошибка повторяемая?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444420
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сам файл jsp в utf-8?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444430
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторошибка повторяемая?
не совсем понял вопрос

авторА сам файл jsp в utf-8?
да

даже фильтр стоит

подозреваю что дело в аппсервере, только как сконфигурировать незнаю
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444437
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Музаффар,

а если так
Код: xml
1.
<%@ page contentType="text/html;charset=UTF-8" %>
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444448
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaМузаффар,

а если так
Код: xml
1.
<%@ page contentType="text/html;charset=UTF-8" %>


нет не работает
стандарт же это
Код: java
1.
<%@page contentType="text/html" pageEncoding="UTF-8"%>




прикол в то что если убрать форвард и сделать типа так
Код: java
1.
out.print("вроде работает!");


так работает хотя мне это не нужна...
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444460
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарне совсем понял вопрос
вы намешали вместе редирект, JSP, сервлет и фильтр.
И потом пишите что "так работает".
))
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444463
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффарне совсем понял вопрос
вы намешали вместе редирект, JSP, сервлет и фильтр.
И потом пишите что "так работает".
))

Как будто без этого сервлета нет?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444479
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на счет того, чтобы добавить charset=UTF-8 ?
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444481
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да блин, надо было сначала прочитать все ответы)))
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444485
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сервер какой?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444488
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффарне совсем понял вопрос
вы намешали вместе редирект, JSP, сервлет и фильтр.
И потом пишите что "так работает".
))
пробовал всякие варианты
и вообще если все указывает на ютф-8 то в чем тогда проблема

да пишу "так работает" тоже была проверкой, и ещё при переходе редиректом то такой проблемы нет проблема только в форварде
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444490
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettА сервер какой?
WildFly
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444516
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарпроблема только в форварде кеш эксплорера?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444519
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарпроблема только в форварде
для него зачем что то писать по кодировке перед перенаправлением на JSP?
Убери весь код до перенаправления.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444523
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у меня все нормально, wildfly 10.0.2
https://mega.nz/#!E89FVaLb!ZOHPbvOAwnAjfY3bJbMNjmU7_KrX2EsOTc1ftfruA5Y
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444580
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффарпроблема только в форварде
для него зачем что то писать по кодировке перед перенаправлением на JSP?
Убери весь код до перенаправления.
и так отчет:
убрал все что связана с кодировкой и получил вот такую штуковину
Òàëàáàëàð äàâîìàòè
при этом мозила говорит что кодировка Западноевропейская
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444582
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а редактор точно jsp сохраняет в utf8 ?
вот eclipse в iso latin сохранял кажется до 4.5 по умолчанию
по крайней мере я всегда менял на UTF8 сразу после установки.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444584
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в Notepad++ убедится, открыть в нем и сделать сконвертнуть в UTF8 если крякозабры появтся то значит сам файл не в той кодировке.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444586
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я еще в начале топега про это спросил
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettя еще в начале топега про это спросил
+1
тут через день об этом говорят.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444608
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingа редактор точно jsp сохраняет в utf8 ?
да, иначе простом редиректе тоже получал бы кракозябы...

авторможно в Notepad++ убедится, открыть в нем и сделать сконвертнуть в UTF8 если крякозабры появтся то значит сам файл не в той кодировке.
проверено тоже ютф
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444615
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарубрал все что связана с кодировкой и получил вот такую штуковину
Òàëàáàëàð äàâîìàòè
при этом мозила говорит что кодировка Западноевропейская
т.е.
/my.jsp показывает нормально
/servlet показывает крякозяблы?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444617
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффарубрал все что связана с кодировкой и получил вот такую штуковину
Òàëàáàëàð äàâîìàòè
при этом мозила говорит что кодировка Западноевропейская
т.е.
/my.jsp показывает нормально
/servlet показывает крякозяблы?

да
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444622
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарда
внутри одна строка
Код: java
1.
request.getRequestDispatcher("/my").forward(request, response)


?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444623
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
точно редирект не нужен, а нужен форвард?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444638
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачай мой пример, запусти, я там даже варник закинул.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444639
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффарда
внутри одна строка
Код: java
1.
request.getRequestDispatcher("/my").forward(request, response)


?
сделал как сказали т.е. оставил только форвард всех остальных закомментил, вот чудо все показывает норм... тогда кто мешает?

да именно форвард и нужен
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444642
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и так постепенно раскомментирую строки:
1. response.setContentType(CONTENT_TYPE); - все норм;
2. PrintWriter out = response.getWriter(); - вот тут и проблема...
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444645
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм, у меня получилось воспроизвести
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444646
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@WebServlet("/encoding")
public class EncodingServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        req.getRequestDispatcher("encoding.jsp").forward(req, resp);
    }
}



Ломает кодировку
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444648
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто интересно
как влияет PrintWriter out = response.getWriter(); на кодировку?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444656
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо он создает writter, а не только получает.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444659
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
  /**
     * Returns a <code>PrintWriter</code> object that
     * can send character text to the client.
     * The <code>PrintWriter</code> uses the character
     * encoding returned by {@link #getCharacterEncoding}.
     * If the response's character encoding has not been
     * specified as described in <code>getCharacterEncoding</code>
     * (i.e., the method just returns the default value 
     * <code>ISO-8859-1</code>), <code>getWriter</code>
     * updates it to <code>ISO-8859-1</code>.
     * <p>Calling flush() on the <code>PrintWriter</code>
     * commits the response.
     * <p>Either this method or {@link #getOutputStream} may be called
     * to write the body, not both, except when {@link #reset}
     * has been called.
     * 
     * @return a <code>PrintWriter</code> object that 
     * can return character data to the client 
     *
     * @exception java.io.UnsupportedEncodingException
     * if the character encoding returned
     * by <code>getCharacterEncoding</code> cannot be used
     *
     * @exception IllegalStateException
     * if the <code>getOutputStream</code>
     * method has already been called for this response object
     *
     * @exception IOException
     * if an input or output exception occurred
     *
     * @see #getOutputStream
     * @see #setCharacterEncoding
     * @see #reset
     */
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444660
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: java
1.
PrintWriter out = resp.getWriter();


впереди попробуй:
resp.setContentType("text/html;charset=utf-8");
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444661
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совсем странно т.к. раньше тоже у меня эта строка присутствовала и все без проблем работала а тут...
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444668
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарт.к. раньше тоже у меня
перегрузи или завтра с утра начни. ))
Известное дело. Бывает.
Удачи!
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444669
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        log(resp.getCharacterEncoding());              
        PrintWriter out = resp.getWriter();
        req.getRequestDispatcher("encoding.jsp").forward(req, resp);
    }



Код: plaintext
16:43:57,342 INFO  [io.undertow.servlet] (default task-11) EncodingServlet: ISO-8859-1

Код: java
1.
2.
3.
4.
5.
6.
7.
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        log(resp.getCharacterEncoding());
        PrintWriter out = resp.getWriter();
        req.getRequestDispatcher("encoding.jsp").forward(req, resp);
    }




аналогично и

Код: java
1.
2.
3.
4.
5.
6.
7.
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        log(resp.getCharacterEncoding());
        PrintWriter out = resp.getWriter();
        req.getRequestDispatcher("encoding.jsp").forward(req, resp);
    }



Код: plaintext
16:45:28,226 INFO  [io.undertow.servlet] (default task-21) EncodingServlet: utf-8

Каракули становятся другие, но что-то не так все равно.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444677
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

во всех случаях кракозябы?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444681
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарHett,

во всех случаях кракозябы?

да, только в первом случае они другие, чем в двух последних.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444688
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

а если сделать так как предлагал Петро?
авторвпереди попробуй:
resp.setContentType("text/html;charset=utf-8");
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444691
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще то пробовал тоже самое...
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444692
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай include вместо forward =)
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444699
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettДелай include вместо forward =)
это где в jsp? так же не удобно...
и все таки не понял в чем заключается подвох
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39444703
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
        req.getRequestDispatcher("xxx").include(req, resp);
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447401
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели request.setCharacterEncoding(" ") так и не пробовали даже?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447409
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пылинка,
вопрос был в том, почему вызов потока для записи ломает кодировку
Код: java
1.
2.
3.
4.
5.
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        req.getRequestDispatcher("encoding.jsp").forward(req, resp);
    }
}
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447421
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, те вы пробовали?
а что получается после request.getCharacterEncoding() можно посмотреть?
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447428
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пылинка,
я не пробовал) по причине того что у меня внешний редирект, а не внутренний как у него.
2.
Даже если работает, то непонятен вопрос чисто академически.
Проверьте вы и отпишитесь.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447437
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПылинкаНеужели request.setCharacterEncoding(" ") так и не пробовали даже?


20435514
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447450
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett, я там нашел только resp
А так я видимо начало прочитал, у вас вопрос сменился.
А зачем перед вызовом forward обращение к выходному потоку, получение PrintWriter ПЕРЕД forward никакого смысла не имеет, туда писать нельзя.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447461
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пылинкаполучение PrintWriter ПЕРЕД forward никакого смысла не имеет, туда писать нельзя.
а если if{}else{forward}
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447504
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПылинкаHett, я там нашел только resp
А так я видимо начало прочитал, у вас вопрос сменился.
А зачем перед вызовом forward обращение к выходному потоку, получение PrintWriter ПЕРЕД forward никакого смысла не имеет, туда писать нельзя.

Зачем - не знаю. Просто тут выяснили, что такая конструкция вызывает проблему с кодировкой, даже если ее явно указывать через setCharsetEncoding.
...
Рейтинг: 0 / 0
Кракозябы при переходе из сервлета на jsp
    #39447505
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Пылинкаполучение PrintWriter ПЕРЕД forward никакого смысла не имеет, туда писать нельзя.
а если if{}else{forward}

PrintWritter в if()
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Кракозябы при переходе из сервлета на jsp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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