这是什么类型的编码?我被告知这是Bencode,但它看起来并不标准

时间:2012-09-07 14:42:30

标签: encoding encode

我正在开发一个项目,在该项目中,他们将以下类型的编码数据存储在mysql数据库的BLOB类型列中。我已经四处询问并且被告知这是Bencode,但是,从我在网上看到它似乎不是标准的Bencode。

Bencode的Wiki

http://en.wikipedia.org/wiki/Bencode

编码数据示例

a:11:{i:0;a:3:{s:11:"question_id";s:2:"46";s:6:"answer";s:1:"2";s:7:"correct";b:1;}i:1;a:3:{s:11:"question_id";s:2:"45";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:2;a:3:{s:11:"question_id";s:2:"44";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:3;a:3:{s:11:"question_id";s:2:"43";s:6:"answer";s:1:"1";s:7:"correct";b:0;}i:4;a:3:{s:11:"question_id";s:2:"42";s:6:"answer";s:1:"3";s:7:"correct";b:0;}i:5;a:3:{s:11:"question_id";s:2:"41";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:6;a:3:{s:11:"question_id";s:2:"40";s:6:"answer";s:1:"0";s:7:"correct";b:1;}i:7;a:3:{s:11:"question_id";s:2:"39";s:6:"answer";s:1:"0";s:7:"correct";b:0;}i:8;a:3:{s:11:"question_id";s:2:"38";s:6:"answer";s:1:"1";s:7:"correct";b:1;}i:9;a:3:{s:11:"question_id";s:2:"37";s:6:"answer";s:1:"3";s:7:"correct";b:0;}i:10;a:3:{s:11:"question_id";s:2:"36";s:6:"answer";s:1:"2";s:7:"correct";b:1;}}

到目前为止我注意到了

我注意到编码使用类似于Bencode的字母和整数来描述不同类型的数据。

实施例: s:11:"question_id";

我假设s代表'string',11定义字符串question_id的长度。此外,似乎数据的开头(a:11:)描述了一个长度为11的数组。虽然这与标准Bencode类似,但它似乎没有使用Bencode使用的标准语法。 / p>

有没有人知道这是什么类型的编码?这是一种非标准的Bencode格式,还是完全不同的东西?我正在寻找PHP或Python的解析器,并且有一个编码名称肯定会有助于我的搜索。

1 个答案:

答案 0 :(得分:5)

这是PHP序列化格式,使用unserialize无法序列化 请参阅http://codepad.org/l7Z9cITo