Bencode编码是p2p文件分享系统BitTorrent使用的编码方式,主要是用来存储或传输结构化的数据。
Bencode支持下面四种数据类型:
1、String:字符串,编码方式是长度(十进制),后面跟冒号(:),然后是原始的字符串,比如4:spam对应字符串spam;
2、Integer:整数,编码方式是i开始,后面跟原始的整数(十进制),后面跟一个e表示结束,比如i3e对应整数3,i-3e对应整数-3,整数没有大小的限制,另外i-0e是无效的,i03e也是无效的,i0e对应整数0;
3、List:列表,编码方式是以l开始,后面跟Bencode编码的每个元素,最后以e结尾表示结束,比如l4:spam4:eggse表示列表['spam', 'eggs'];
4、Dictionary:字典,编码方式是以d开始,后面跟Bencode编码的key和key对应的value的列表,最后以e结尾表示结束,比如d3:cow3:moo4:spam4:eggse对应{'cow': 'moo', 'spam': 'eggs'},d4:spaml1:a1:bee对应{'spam': ['a', 'b']},所有的key必须是String类型的,并且必须是排序的。