当我读取cookie的值时,“@”之后的部分被忽略。所以,如果我的cookie值是“abc @ xyz”,那么当我通过
检索值时,我只是得到“abc” Cookie cookies [] = request.getCookies ();
pwd=cookies[0].getValue();
然而,在javascript中我能够轻松地将其读作“abc @ xyz”,即使在浏览器cookie中,我也可以看到cookie的值为“abc @ xyz”。这可能有什么问题?
答案 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是如何设置的,所以你可能不得不为你正在处理的平台找出这个。