1

私はPrimefacesでフォームを持っています。xml ファイルのヘッダーは次のようになります。

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

フォームを送信するとき、値を次のように取得しますHttpServletRequest

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

üshortnameなどのウムラウトが含まれている場合、ウムラウトは UTF-8 エンコードとして保存されます。したがって、私のüはüとして保存されます。

どうすれば再度デコードできますか?すべてのチュートリアルでバイト配列を使用していますが、私は使用していません。

EMail でこの変数が必要なのですが、一部の象形文字では見栄えがよくありません。

4

1 に答える 1

2

HttpServletRequestUTF-8 であることをインスタンスに伝える必要があります。

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

       (...)
   }
   catch (UnsupportedEncodingException e) {
       // ...
   }
}
于 2013-07-10T14:40:19.123 に答える