你好,歡迎來到IOS教程網

 Ios教程網 >> IOS教程 >> 關於IOS教程 >> safari cookie設置中文失敗的解決方法

safari cookie設置中文失敗的解決方法

編輯:關於IOS教程

最近用H5進行手機端開發,由於是window操作系統,為了方便開發和調試,直接在chrome浏覽器上進行測試,然後在android機上進行手機端測試,當功能基本完工後,原來在android上運行正常的應用,在IOS上運行時,出現很多奇怪的問題,根據排查,發現是由於cookie未取到值而導致相關信息無法獲取。

一開始以為是cookie中文亂碼的問題,後來跟蹤發現,cookie的值壓根就沒賦值成功,網上查了資料,發現safari不允許非ASCII編碼的值,換句話說:不允許中文存儲。

為了解決這個問題,在設置cookie值的時候必須先編碼,然後取值的時候再解碼。

後端設置cookie用的asp.net,前端獲取用的Javascript,他們的編碼和解碼能一致麼?當前只能試一試了:

試了幾種方法,發現用HttpUtility.UrlEncode()進行編碼成功:

cookie = new HttpCookie("rdname");  
cookie.Value = HttpUtility.UrlEncode(user.RegisterDeptName);  
cookie.Expires = System.DateTime.Now.AddDays(30);  
context.Response.Cookies.Set(cookie);  

客戶端Javascript解碼為:

var deptName = cookie('rdname');  
deptName= decodeURIComponent(deptName);  
$("#pickerlb").val(deptName);  

也就是說:Javascript中的decodeURIComponent()和C#的HttpUtility.UrlEncode()是配對的。

以上這篇safari cookie設置中文失敗的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved