encoding - 这是什么类型的编码?我听说它是​​ Bencode,但它看起来并不标准

标签 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代表“字符串”,11定义字符串 question_id 的长度。此外,数据的开头 ( a:11: ) 似乎描述了一个长度为 11 的数组。虽然这与标准 Bencode 类似,但它似乎没有使用 Bencode 使用的标准语法。

有人知道这是什么类型的编码吗?这是非标准 Bencode 格式,还是完全不同的格式?我正在寻找 PHP 或 Python 中的解析器,并且为编码命名肯定会对我的搜索有所帮助。

最佳答案

这是 PHP 序列化格式,可使用 unserialize 进行反序列化。 .
请参阅http://codepad.org/l7Z9cITo .

关于encoding - 这是什么类型的编码?我听说它是​​ Bencode,但它看起来并不标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239854/

相关文章:

c# - 如何使用 C# 将 powershell 脚本编码为 base64 UTF16-LE 字符串

mysql - 德语的最佳 MySQL 排序规则是什么

java - 文件上传文件名编码

php - 如何将 .ics header 从 JavaScript 编码为 PHP?

java - 将许多有界整数打包成一个大的单个整数

java - 编码字符串会占用更少的内存吗?

php - CKEditor 字符集

Python - 关于 Python 中字符串如何存储和处理的混淆

perl - 基准 utf8 文件读取 - 差异说明

perl - 来自编码函数的检查参数