asp-classic Request.Cookies为1个cookie提供此值“θ”而不是“ÅÙÏ”<“‰Š”<“

时间:2009-03-18 14:41:26

标签: cookies asp-classic

这发生在一个cookie中,只有一个键中的键。 该值应为“ÅÙÏ”<“‰”<“。

3 个答案:

答案 0 :(得分:2)

  

值应为“ÅÙÏ”<“‰”<“。

呃,真的吗?对我来说,这看起来像是一个损坏的,错误的字符集版本! :-)无论哪种方式,“θ”是你在Windows西欧编码(cp1252)中保存该字符串然后以UTF-8读回来时所得到的,删除所有由于它不是因为它而导致的“无效字符”代码一个有效的UTF-8字符串。所以你有一个经典的阅读和写作 - 使用不同的编码问题。

作为一般规则,您无法直接将非ASCII字符放入cookie(名称或值)中。您需要某种应用程序级编码机制;最流行的方法之一是对所需字符的UTF-8表示进行URL编码,类似于JavaScript的encodeURIComponent如何进行。

(不幸的是,ASP classic对处理Unicode的支持很差。)

答案 1 :(得分:0)

最终解决方案: 使用“正确”编码另存为不同的文件 更改编码

  • 来自“Unicode(UTF-8 with signature)-Codepage 65001”
  • 至“西欧(Windows) - 代码页1252”

答案 2 :(得分:0)

我们在Cookie上使用编码,一些结果字符可能会导致问题。所以我们做的是获取cookie字符串并将其编码为HEX。 - 解决了问题。