クッキーの中国語の文字化けし問題について

2585 ワード

クッキーは中国語の文字化けしの問題を保存します


クッキーはデフォルトでASCII符号化されているため、クッキーを保存する際に中国語をASCII符号化に変換する必要があります.

1.エラープレゼンテーション

Cookie cookie = new Cookie("username"," ");
response.addCookie(cookie);

上はエラーコードでjavaが報告されます.lang.IllegalArgumentException:Control character in cookie value or attribute異常.

2.処理方案


クッキーに格納するデータに対してURLEncoder符号化を行う
String username = URLEncoder.encode(" ","utf-8");
Cookie cookie = new Cookie("username",username);
response.addCookie(cookie);

jspでは、クッキーの値を取り出すには、2つの方法があります.
  • Javaコード実装
  • Cookie[] cookies = request.getCookies();
    String name = null;
    if(cookies != null){
        for(int i = 0; i < cookies.length; i++){
            if(cookies[i].getName().equals("username")){
                name = cookies[i].getValue();
                break;
            }
        }
    }
    <input type='text' name='username' id='name' />
    <textarea>"utf-8") %>textarea>
  • さらにjavascrpaptにはdecodeURIが提供するURLEncode符号化可能な文字を復号する
  • がある.
    function fun(){
        var name = "${cookie.username.value}";
        document.getElementById("name").value = decodeURI(name);
    }