I have problem with getting value from cookie that contains commas. It returns not full string but string cut off to first comma. For example:
// cookie value = var1,var2,var3
String cookieVal = cookie.getValue();
//cookieVal now is "var1" instead of "var1,var2,var3"
and
// cookie value = var1=var2=var3
String cookieVal = cookie.getValue();
//cookieVal now is "var1=var2=var3"
What am i doing wrong.
So no, commas are not allowed in cookie values, and no browsers actually implemented that.
The cookie value string can use encodeURIComponent() to ensure that the string does not contain any commas, semicolons, or whitespace (which are disallowed in cookie values).
According to RFC 2109, "HTTP State Management Mechanism", white space in cookie values must be encoded or the entire value must be quoted. The set-cookie function does not automatically encode white space characters or add quotes to a value string containing white space.
Take a look at the Cookie Documentation. It says :
This class supports both the Version 0 (by Netscape) and Version 1 (by RFC 2109) cookie specifications. By default, cookies are created using Version 0 to ensure the best interoperability.
And if you see the setValue method you will find this
With Version 0 cookies, values should not contain white space, brackets, parentheses, equals signs, commas, double quotes, slashes, question marks, at signs, colons, and semicolons. Empty values may not behave the same way on all browsers.
EDIT: Just read the google thing. Maybe try setting the version to 1 and see how it works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With