同事小熊子反應: Community Server暱名留言時姓名欄位提供的"記住我"功能,在處理中文時會有亂碼的問題,由他使用IE Cookie View追蹤的結果,感覺上ASP.NET 2.0是用UTF-8編碼保存中文,但下次使用時卻姓名變成亂碼也是事實。

印象中在另一位MVP的Blog有看過類似的問題,回頭查了一下,症狀幾乎完全相同,看來是ASP.NET 2.0的Bug(對某些人來說挺要命的)。要閃開這個Bug的一個有效作法是對文字做Encoding,於是我改了CommunityServerBlogs20.Blogs.Controls.CommentForm.cs,在寫入/讀取Cookie時加上UrlEncode及UrlDecode,問題解決,Case Closed。


Comments

# by 小熊子

太棒了~ 謝謝~

# by 璉璉

我自己現在是用 Base64 來做編解碼,因為 Cookies 有 4 kb 上限,用 Base64 比較省,而且部份 cookies 可以配合加密用 Base64 直接編位元組陣列,不用特別改~

# by 北極熊

6/20微軟自動更新後 .NET 2003 中文Cookies 有亂碼問題, 在您的網站找到解決方法~ 謝謝!

Post a comment