为什么在'@'被忽略之后cookie值部分?

时间:2011-07-20 17:19:11

标签: java cookies

当我读取cookie的值时,“@”之后的部分被忽略。所以,如果我的cookie值是“abc @ xyz”,那么当我通过

检索值时,我只是得到“abc”
  Cookie cookies [] = request.getCookies ();
    pwd=cookies[0].getValue();

然而,在javascript中我能够轻松地将其读作“abc @ xyz”,即使在浏览器cookie中,我也可以看到cookie的值为“abc @ xyz”。这可能有什么问题?

1 个答案:

答案 0 :(得分:1)

我的第一个猜测是与字符编码有关的问题。您是否尝试过urlencode和-decode cookie值?

修改

您可以使用URLDecoder.decode (cookies[0].getValue(), "utf-8")来检索Cookie值。

为了使其正常工作,当然必须首先对值进行编码:如果您从Java设置cookie值,请使用URLEncoder.encode("abc@xyz", "utf-8"),或者encodeURIComponent("abc@xyz")设置值来自JavaScript。我不知道cookie是如何设置的,所以你可能不得不为你正在处理的平台找出这个。