現在網路上ASP為主的網站慢慢消失

但仍有許多大系統為ASP寫成的,要完全置換成ASP.NET,需要花點時間重寫code

因此,有一種情況就是,ASP.NET和ASP共用資料

 

例如,登入系統是以ASP撰寫,而新版的薪資系統是以ASP.NET撰寫

當進入ASP.NET薪資系統時,必須導向ASP為主的認證系統要認證資料(核對帳號密碼是否正確)

此時會ASP會從資料庫取回資料,存入cookie,讓ASP.NET系統取用比對

若資料為中文,此時就會出現問題

因為ASP編碼是以big5為主;ASP.NET是以utf-8為主

以ASP.NET接收ASP的資料就會有問題

要解決此問題,筆者的經驗如下:

1.
修改ASP.NET專案的web.config

    <globalization 
            requestEncoding="big5" 
            responseEncoding="big5" 
   />

也就是把這份專案全部以big5來編碼

2.
在網頁之間傳送value時,用以下方式接收
以接收name這個變數為例,可以寫成 
Server.UrlDecode(Request.Cookies["name"].Value)

---------------

如此以來可以解決新舊系統共用cookie出現中文無法通用的問題囉~

jimgau 發表在 痞客邦 PIXNET 留言(0) 人氣()