Я работаю над приложением Flex-Java (клиент-сервер), и у меня возникла проблема. Я отправляю на сервер параметры пути и получаю их на JSP, иногда эти параметры имеют специальные символы, такие как áéíóú или ñ. У меня есть то, что я считаю распространенной проблемой, эти специальные символы неправильно принимаются на моем сервере.
Я также проверил другие вопросы, имеющие ту же проблему, что и this или это другое.
Я уже пытался использовать request.setCharacterEncoding("UTF-8")
для получения параметров (ответ на первый вопрос).
Я также попытался проверить конфигурацию своего сервера (Apache Tomcat 7.0.34.0) в файле server.xml и уверен, что узел с портом 8080 имеет атрибут URIEncoding="UTF-8"
(ответ на второй вопрос).
Я даже пытался прочитать параметр, например:
String paramTest1 = (new String(request.getParameter("paramTest").getBytes("ISO-8859-1"),"UTF-8"));
or
String paramTest2 = (new String(request.getParameter("paramTest").getBytes("UTF-8")));
Отлаживая свое приложение, я понял, что URI был хорошо принят, проблема в том моменте, когда я прочитал параметры из запроса.
В настоящее время я получаю параметры традиционным способом, код моего JSP:
<%@page contentType="text/html" pageEncoding="UTF-8" language = "java"%>
<%
request.setCharacterEncoding("UTF-8");
String paramTest = request.getParameter("paramTest");
String paramTest1 = (new String(request.getParameter("paramTest").getBytes("ISO-8859-1"),"UTF-8"));
String paramTest2 = (new String(request.getParameter("paramTest").getBytes("UTF-8")));
%>
Как видно из изображения, я отправляю строку «1234acentoáéíóúeñe» для параметра paramTest. Значения моих переменных, получающих параметры:
paramTest = 1234acento�����
paramTest1 = 1234acento?????
paramTest2 = 1234acento�����
И мне нужно получить точно такие же символы, которые я отправляю.
Не знаю, важно ли это сказать, но на стороне Flex для объекта URLRequest я указываю объект URLRequestHeader ("Content-Type", "text/html;charset=UTF-8")
для массива requestHeaders. Это не помогает для моей цели.
Любой комментарий или ответ приветствуется.
Спасибо.