you are just writing the cookie and do not have control over the site reading/displaying the value to put in the URLDecode you can also do something like this:
ckCookie.Value = (Server.HtmlEncode( strSpecialCharacters )).Replace(";","");
This will ensure the full string is set in the cookie and Safari, Chrome, Firefox and IE will still recognize the html codes even without the ; and does not require decoding when read.
For a longer answer on cookie specs see:
http://stackoverflow.com/questions/1969232/allowed-characters-in-cookies/1969339#1969339[
^]