Создаю 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), которые из базы данных берется, отображается корректно.
Помогите разрешить проблему,
Спасибо
Здравствуйте, 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"
/>
Здравствуйте, 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> />
К сожалению не помогло, также все.