首先是一個解析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來編碼的。