powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Русская кодировка в сервлетах Intellij Idea Ultimate
9 сообщений из 9, страница 1 из 1
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622852
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Intellij Idea Ultimate 2017.03
Как настроить вывод русских символов при запуске сервлетов Java?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(urlPatterns = "/start")
public class MyWebServlet  extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String htmlCode = "<html>" +
                "<head><title>Мой сервлет</title></head>" +
                "<body>" +
                "Это русский язык!!"  +
                "</body>" +
                "</html>";

        resp.getWriter().write(htmlCode);

    }
}



В браузере выводится: ??? ??????? ????!!
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622866
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622872
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

добавил

Код: java
1.
resp.setCharacterEncoding("UTF-8");


помогло. Спасибо!
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622952
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarBasil A. Sidorov,

добавил

Код: java
1.
resp.setCharacterEncoding("UTF-8");


помогло. Спасибо!

Это возможно помогло в частном случае так как возможно поможет не во всех браузерах. Для этого лучше явно указать кодировку отправленного текста
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622953
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622955
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingДля этого лучше явно указать кодировку отправленного текстаДокументацию почитайте. Можете прямо по тем ссылкам из моего сообщения.
Предложенный вызов - сокращение для setHeader(...).
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39622983
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov ServletResponse . setCharacterEncoding .Лучше, кстати (для данного случая), getContentType("text/html;charset=UTF-8") .
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39623066
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovllemingДля этого лучше явно указать кодировку отправленного текстаДокументацию почитайте. Можете прямо по тем ссылкам из моего сообщения.
Предложенный вызов - сокращение для setHeader(...).

почитал,
Код: plaintext
Note that the character encoding cannot be communicated via HTTP headers if the servlet does not specify a content type; however, it is still used to encode text written via the servlet response's writer.
но вы уже исправили ошибку

Basil A. SidorovЛучше, кстати (для данного случая), getContentType("text/html;charset=UTF-8").


не лучше а правильнее, надеждее чтоли.

В первом же случае помимо того что указать контейнеру что работать с клиентом с кодировкой UTF-8 нужно же еще и клиенту сообщить либо
Код: plaintext
<meta charset="utf-8">
либо в Content-Type: text/xml;charset=utf-8

иначе как повезет, вот firefox например на удивление вообще игнорит например так
Код: plaintext
<meta charset="utf-16">
и выкидывает ворнинг в консоли дескать вообще неправильный вариант и utf-8 будет использовано для документа, видимо от того что w3c рекомендует что ненужно(причем интонация на уровне "нельзя") использовать utf-16

но это частный случай т.е браузер депендент, ведь другие я не проверял.
...
Рейтинг: 0 / 0
Русская кодировка в сервлетах Intellij Idea Ultimate
    #39623577
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingпочитал
...
но вы уже исправили ошибкуЭто не ошибка. Если запрошен Writer, это это текст.
Другой вопрос, что может быть и text/plain и text/html, как два наиболее вероятных кандидата.
Поэтому лучше явно устранить неоднозначность.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Русская кодировка в сервлетах Intellij Idea Ultimate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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