사용자는 국제 lang 문자를 포함하여 원하는 모든 것을 쓸 수있는 입력 필드가 하나 있습니다.한 서블릿에서 다른 서블릿으로 intr 문자를 전송하는 데 문제가 있습니다.
첫 번째 서블릿은 다음과 같습니다.
protected void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF8"), true);
out.println("<HTML><HEAD><TITLE>");
...
out.println("<input type=text name=someText style='width:10em;'>");
서블릿은 다음 키 라인을 가진 두 번째 서블릿으로 제출 버튼을 진행합니다.
if(httpRequest.getCharacterEncoding() == null)
httpRequest.setCharacterEncoding("UTF-8");
String someText= httpRequest.getParameter("someText");
내가 뭔가 이상한 얻을 같은 : AAA ° iÃüÃöÃçIÄ ± 내가 디버그를 진행합니다.
내가 뭘 잘못하고 있니? 도움을
덕분에, 직접
httpRequest.setCharacterEncoding("UTF-8");
널 (null)을 확인 할 필요없이 UTF에
당신의'PrintWriter' 접근법은 어색합니다. 그냥 response.setCharacterEncoding ("UTF-8")'*을하기 전에'response.getWriter()'를 얻는다. 'InputStreamReader'에서 랩핑 할 필요가 없습니다. 게다가 서블릿에서 HTML을 내보내는 것은 매우 좋지 않습니다. JSP로 수행되어야합니다. http://stackoverflow.com/tags/servlets/info 및 http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html을 참조하십시오. – BalusC