<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Bencode</id>
	<title>Bencode - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Bencode"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Bencode&amp;action=history"/>
	<updated>2026-06-26T09:51:02Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Bencode&amp;diff=225767&amp;oldid=prev</id>
		<title>imported&gt;Kunjinkao：​Cat-a-lot：分类间移动：从Category:置标语言到Category:标记语言</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Bencode&amp;diff=225767&amp;oldid=prev"/>
		<updated>2023-12-06T13:02:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/Help:Cat-a-lot&quot; class=&quot;mw-redirect&quot; title=&quot;Help:Cat-a-lot&quot;&gt;Cat-a-lot&lt;/a&gt;：分类间移动：从&lt;a href=&quot;/wiki/Category:%E7%BD%AE%E6%A0%87%E8%AF%AD%E8%A8%80&quot; title=&quot;Category:置标语言&quot;&gt;Category:置标语言&lt;/a&gt;到&lt;a href=&quot;/wiki/Category:%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80&quot; title=&quot;Category:标记语言&quot;&gt;Category:标记语言&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bencode&amp;#039;&amp;#039;&amp;#039;（發音為Bee-Encode）是[[BitTorrent (協定)|BitTorrent]]用在傳輸資料結構的編碼方式。這種編碼方式支援四種資料型態：&lt;br /&gt;
&lt;br /&gt;
*[[字符串]]&lt;br /&gt;
* [[整數]]&lt;br /&gt;
* [[串列 (抽象資料型別)|串列]]&lt;br /&gt;
* [[关联数组|字典表]]&lt;br /&gt;
&lt;br /&gt;
Bencode最常被用在[[.torrent]]檔中，檔案裡的[[元數據]]都是被Bencode编码过的[[关联数组|字典表]]。这种编码方法也被[[BitTorrent tracker|Tracker]]返回响应时使用。&lt;br /&gt;
&lt;br /&gt;
虽然比用纯二进制编码效率低，但Bencode结构简单而且不受[[字节序|字节存储顺序]]影响（所有数字以十进制编码），这对于[[跨平臺|跨平台性]]非常重要。并且，Bencode具有较好的灵活性，即使存在故障的字典键，只要将其忽略并更换新的就能兼容补充。&lt;br /&gt;
&lt;br /&gt;
==编码方法==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bencode&amp;#039;&amp;#039;&amp;#039;使用[[ASCII]]字符进行编码。&lt;br /&gt;
*一个整型数会以十进制数编码并括在i和e之间，不允许前导零（但0依然为整数0），负数如十进制表示一样使用前导负号，不允许负零。如整型数“42”编码为“&amp;lt;code&amp;gt;i42e&amp;lt;/code&amp;gt;”，数字“0”编码为“&amp;lt;code&amp;gt;i0e&amp;lt;/code&amp;gt;”，“-42”编码为“&amp;lt;code&amp;gt;i-42e&amp;lt;/code&amp;gt;”。&lt;br /&gt;
*一个以字节为单位表示的字符串（字符串的字为一个字节，不一定是一个字符）会以&amp;lt;code&amp;gt;（长度）:（内容）&amp;lt;/code&amp;gt;编码，长度的值和数字编码方法一样，只是不允许负数；内容就是字符串的内容，如字符串“spam”就会编码为“&amp;lt;code&amp;gt;4:spam&amp;lt;/code&amp;gt;”，本规则不能处理ASCII以外的字符串，为了解决这个问题，一些BitTorrent程序会以非标准的方式将ASCII以外的字符以[[UTF-8]]编码转化后再编码。&lt;br /&gt;
*线性表会以l和e括住来编码，其中的内容为Bencode四种编码格式所组成的编码字串，如包含和字符串“spam”数字“42”的线性表会被编码为“&amp;lt;code&amp;gt;l4:spami42ee&amp;lt;/code&amp;gt;”，注意分隔符要对应配对。&lt;br /&gt;
*字典表会以d和e括住来编码，字典元素的键和值必须紧跟在一起，而且所有键为字符串类型并按[[字典順序|字典顺序]]排好。如键为“bar”值为字串“spam”和鍵为“foo”值为整數“42”的字典表会被编码为“&amp;lt;code&amp;gt;d3:bar4:spam3:fooi42ee&amp;lt;/code&amp;gt;”。&lt;br /&gt;
对于线性表和字典的取值范围并没有限制，它们通常会包含其他元素，这样就允许对很复杂的数据结构进行编码。&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
* [http://wiki.theory.org/BitTorrentSpecification Another BitTorrent protocol specification]{{Wayback|url=http://wiki.theory.org/BitTorrentSpecification |date=20061214094732 }}&lt;br /&gt;
* [http://pear.php.net/package/File_Bittorrent2/ File_Bittorrent2]{{Wayback|url=http://pear.php.net/package/File_Bittorrent2/ |date=20111116073740 }} - Another PHP Bencode/decode implementation&lt;br /&gt;
* [http://pypi.python.org/pypi/BitTorrent-bencode/5.0.8 The original BitTorrent implementation in Python as standalone package]{{Wayback|url=http://pypi.python.org/pypi/BitTorrent-bencode/5.0.8 |date=20111001171434 }}&lt;br /&gt;
* [https://web.archive.org/web/20111119025339/http://forum.utorrent.com/viewtopic.php?id=31306 BEncode Editor]&lt;br /&gt;
* [http://zakalwe.fi/~shd/foss/bencode-tools/ bencode-tools]{{Wayback|url=http://zakalwe.fi/~shd/foss/bencode-tools/ |date=20110928125639 }} - a C library for manipulating bencoded data and a XML schema like validator for bencode messages in Python&lt;br /&gt;
* [https://web.archive.org/web/20131203085012/http://www.codecommit.com/blog/java/bencode-stream-parsing-in-java Bencode parsing in Java]&lt;br /&gt;
* [https://web.archive.org/web/20110724074506/http://funzix.git.sourceforge.net/git/gitweb.cgi?p=funzix%2Ffunzix%3Ba%3Dblob%3Bf%3Dbencode%2Fbencode.c Bencode parsing in C]&lt;br /&gt;
&lt;br /&gt;
{{BitTorrent}}&lt;br /&gt;
&lt;br /&gt;
[[Category:标记语言]]&lt;br /&gt;
[[Category:数据序列化格式]]&lt;br /&gt;
[[Category:BitTorrent]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Kunjinkao</name></author>
	</entry>
</feed>