[轉]JS Cookie 中文亂碼


首先是一個解析cookie的函數:

 <script type="text/javascript">
 function getCookie(name) {
   var cookies = document.cookie.split(";");
   for(var i=0;i<cookies.length;i++) {
    var cookie = cookies[i];
    var cookieStr = cookie.split("=");
    if(cookieStr && cookieStr[0].trim()==name) {
     return  decodeURI(cookieStr[1]);
    }
   }
 }
 
 String.prototype.trim = function() {
  return this.replace(/^(\s*)|(\s*)$/g,"");
 }
 </script>

 

當獲取到內容的時候,一定要進行編碼,否則會出現中文亂碼問題。

decodeURI

其中在java的Servlet中,中文也要進行轉碼。cookie中不允許直接存儲中文:

  String  valueUTF8 = URLEncoder.encode("testvalue3_中文_UTF-8","UTF-8");
  Cookie cookie3 = new Cookie("testUTF8",valueUTF8);

  response.addCookie(cookie3);

並且在encode編碼的時候,用UTF-8來編碼。這樣js通過decodeURI轉碼過來的就不是亂碼。

因為decodeURI就是采用的UTF-8來編碼的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM