我在从jsp向servlet发送cyrillic or umlauts等特殊字符时遇到问题。非常感谢您的帮助。
这是我所做的:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> ... <div class="authentication"> <form name="registerForm" action="register" method="get" accept-charset="UTF-8"> <input type="input" name="newUser" size="17"/> <input type="submit" value="senden" /> </form> </div> ...
<Connector URIEncoding="UTF-8" ...
public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ request.setCharacterEncoding("UTF-8"); String username = request.getParameter("newUser"); System.out.println("encoding: "+request.getCharacterEncoding()); System.out.println("received: "+username);
encoding: UTF-8 received: ??????
我想念什么吗?我想servlet无法正确解码String,但是我不知道为什么会这样。我已经关注了所有有关此主题的建议,但是没有运气。
提前致谢。
一切看起来都很好。仅System.out.println()控制台也需要配置为将字节流解释为UTF-8。
System.out.println()
如果您坐在像Eclipse这样的IDE中,则可以通过将“ _窗口”
“首选项”>“常规”>“工作区”>“文本文件编码”设置_为UTF-8来实现。对于其他环境,您应该对此有更具体的说明,以便我们告诉您如何对其进行配置。