将Python字节串序列化为JSON,保留字符值顺序
我在Python(2.x)中生成了一些二进制数据,这些数据是以base-256字节串的形式存在的。现在我需要把这些数据读入JavaScript中,并且希望在字符串中每个字节(字符)的顺序值能够保持不变。简单来说,我想在Python中编码一个字符串s
,使得在JavaScript中读取后,ord(s[i]) == s.charCodeAt(i)
。
看起来最简单的方法是把我的Python字符串转换成JSON格式。不过,json.dump
对我的字节串不太友好,尽管我尝试调整了ensure_ascii
和encoding
这两个参数。有没有办法把字节串编码成Unicode字符串,同时保持字符的顺序值不变?否则,我想我需要把ASCII范围之外的字符编码成JSON风格的\u1234
转义字符,但像这样的编码器在Python的codecs
中似乎没有。
有没有简单的方法可以把Python的字节串序列化成JSON,同时保持字符值不变,还是说我需要自己写一个编码器?
2 个回答
3
你可以直接用Base64吗?(Python有个base64
模块,JavaScript也有好几种实现,其中一种可以在这里找到。)
如果你的数据几乎都是文本,那才需要用转义的ASCII或UTF-8。
5
有没有办法把字节串转换成Unicode字符串,同时保持字符的原始值不变?
把字节转换成Unicode的过程叫做解码
,而不是编码
。不过没问题,使用像iso-8859-1
这样的编码方式进行解码,确实可以保持你想要的字符原始值。