jQuery.cookie.jsでクッキー名(キー)が内部でencodeURIComponentされている事実


現象

ちょっと特殊な状況ですが、
hoge[fuga] というキーに 1 が入っているとする

うまく動かない例

console.log($.cookie('hoge[fuga]')); // undefined

なぜ?

hoge[fuga] が、内部で encodeURIComponent されて
hoge%5bfuga%5dと解釈されてしまっているから。

FYI: carhart/jquery-cookie - README

解決策

$.cookie.raw = true を使う

$.cookie.raw = true
console.log($.cookie('hoge[fuga]')); // 1

リンク

個人的な感想

普段あまり意識していなかっただけにハマった…。