我一直在使用localStorage以字符串格式存储一些二进制数据,虽然这个值是明确设置的(alert设置后立即设置,或者甚至设置后的一段时间,显示正确的值),但是当页面下次加载时它会丢失.
起初我认为这可能是因为数据包含空字节,所以我重新设计了压缩器,以便它永远不会输出它们.然而,这没有任何区别,因为价值仍然丢失.
我localStorage.testing = 1在设置二进制数据后立即添加.即使另一个丢失,也会保留此值.
我绝对肯定没有代码delete localStorage.myitem.
可能导致此问题的原因是什么?
如果它有帮助,这里是我试图存储的数据,以十六进制表示:
0x1103c0a0 0xd6cf0305 0xc0a0d6cf 0x0307c0a0 0xd6cf0309 0xc0a0d6cf
0x030bc0a0 0xd6cf030d 0xc0a0d6cf 0x0311c0a0 0xd6cf0313 0xc0a0d6cf 0x0301
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚测试过localStorage.testvalue = realvalue.replace(/[\x00-\x1f]/g,'');并成功保存了它.所以,我想知道规范在哪里说控制字符可能不会用在字符串中.