我有一张Primefaces表格。 xml文件的标题如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>


发送表单时,我用HttpServletRequest取值:

public String handleRequest(HttpServletRequest request) {
   String shortname = request.getParameter("shortname");
   (...)


现在,当shortname包含一个umlaute,例如ü时,该umlaute将被保存为UTF-8编码。所以我的ü被保存为¼。

如何重新解码?所有的教程都使用字节数组,但是我没有一个。

我在电子邮件中需要此变量,但对于某些象形文字来说,它看起来并不好。

最佳答案

您需要告诉HttpServletRequest实例它在UTF-8中:

public String handleRequest(HttpServletRequest request) {
   try {
       request.setCharacterEncoding("UTF-8");
       String shortname = request.getParameter("shortname");

       (...)
   }
   catch (UnsupportedEncodingException e) {
       // ...
   }
}

10-06 07:01