JSP русский текст, проблемы
От: Lisitsin  
Дата: 23.03.14 11:49
Оценка:
Создаю JSP веб приложение, в котором русский текст из базы данных должен отображаться на странице. Использую для этого jquery-ui autocomplete combobox:


<div class="ui-widget">
        <label>Select MKB from list: </label>
        <select id="combobox">
            <option value=""></option>
            <c:forEach var="mkb" items="${mkbList}">
                <option value="${mkb.id}"><c:out value="${mkb.mkbText}"/></option>
            </c:forEach>
        </select>
    </div>


Проблема в том, что русский текст выводится весь в вопросиках. Хотя статический русский текст на странице выводится корректно.
В JSP файле я делаю инклуд :

<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8"%>


Также в самом JSP есть строка:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Я использую tomcat7, java 7. Пытался также прописать при старте томката параметр -Dfile.encoding=UTF-8, не помогло.

Сам код сервлета:


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    MkbDAO mkbDAO = new MkbDAO();
    List<MKB> mkbList = mkbDAO.getMKBList();
    request.setAttribute("mkbList", mkbList);
    RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher("/WEB-INF/jsp/diagList.jsp");
    rd.include(request, response);
}


Если отлаживать код, то видно, что с базы данных данные отображаются в Watch window корректно, понятными русскими буквами.

Я также заметил, что если вставить следующий код внутри сервлета

response.setCharacterEncoding("UTF-8");


То ситуация меняется, статический русский текст, ранее отображаемый корректно, первращается в закорючки, а текст в селекте (autocomplete combobox), которые из базы данных берется, отображается корректно.

Помогите разрешить проблему,
Спасибо
java utf-8 jsp encoding
Re: JSP русский текст, проблемы
От: Protey Россия  
Дата: 23.03.14 12:55
Оценка:
Здравствуйте, Lisitsin, Вы писали:

Добавить URIEncoding="UTF-8" в Connector, примерно так


<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"
/>

Re[2]: JSP русский текст, проблемы
От: Аноним  
Дата: 23.03.14 13:09
Оценка:
Здравствуйте, Protey, Вы писали:

P>Здравствуйте, Lisitsin, Вы писали:


P>Добавить URIEncoding="UTF-8" в Connector, примерно так



P>

P><!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
P> <Connector port="8080" maxHttpHeaderSize="8192"
P> maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
P> enableLookups="false" redirectPort="8443" acceptCount="100"
P> connectionTimeout="20000" disableUploadTimeout="true"
P> URIEncoding="UTF-8"
P> />


К сожалению не помогло, также все.
Re[3]: JSP русский текст, проблемы
От: Protey Россия  
Дата: 24.03.14 07:29
Оценка:
Здравствуйте, Аноним, Вы писали:


А>К сожалению не помогло, также все.


Попробуйте вместо GET — POST. Если поможет — нужно ставить CharEncodingFilter
Re[4]: JSP русский текст, проблемы
От: Protey Россия  
Дата: 24.03.14 07:31
Оценка:
Здравствуйте, Protey, Вы писали:

P>Попробуйте вместо GET — POST. Если поможет — нужно ставить CharEncodingFilter


А, да, и в meta страницы не забудьте прописать UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.