Open zhongfox opened 9 years ago
Hi @zhongfox thanks for example!
I suspect one of these strings on the ruby side is not ASCII/UTF-8; despite everything in your example containing only ASCII characters the metadata is marshaled, and the approach to parsing differs for the less common cases.
I'll take a look at this over the next few days, but I have limited knowledge of handling conversions between encodings other than the two above on the JS side, and am wary it is a deep rabbit hole. My fallback is that an option (off by default) is made available to treat strings with unrecognised encodings as UTF-8.
I am facing the exact issue.
Error: String not terminated with encoding symbol (expected 3a or 3b, got 69), not sure what to do
My base64 is:
BAh7CUkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjoGRVRbB1sGaQZJIiIkMmEkMTAkRjEyMlRyL1pJZFhGaWFHV0Y2eUF1dQY7AFRJIhd0ZXJtaW5hbF9yZXR1cm5fdG8GOwBGIg4vdGVybWluYWxJIh13YXJkZW4udXNlci50ZXJtaW5hbC5rZXkGOwBUWwdbBmkB90kiIiQyYSQxMCRDME5jVXd4MEFyOVpBV3hWUi5haWdPBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMVQzcWpXRFAwOHNqTlVva05kQTRTQ0diK3JFYUJ0b0ZsZEI1R1pLcFpQQXc9BjsARg==
that ruby deserializes to
{
"warden.user.user.key"=>[[1], "$2a$10$F122Tr/ZIdXFiaGWF6yAuu"],
"terminal_return_to"=>"/terminal",
"warden.user.terminal.key"=>[[247], "$2a$10$C0NcUwx0Ar9ZAWxVR.aigO"],
"_csrf_token"=>"T3qjWDP08sjNUokNdA4SCGb+rEaBtoFldB5GZKpZPAw="
}
I have no knowledge of ruby marshaling logics. I have once tried to find a spec for that but unsuccesfully. @shackpank do you have any references?
I will try to dig deeper int it.
https://github.com/instore/node-marshal/ seems to handle it correctly.
Can you please look at this one? Im using 0.1.0, thanks! ruby:
node: