我对 Bencoding 有点困惑。
根据规范,当我对字符串进行编码时,我需要使用以下格式:
长度:字符串
字符串垃圾邮件变为4:垃圾邮件
我的问题:4是编码字符串的符号数量,还是utf-8字节的数量?
例如,如果我要对字符串 gâteau 进行 Bencode
应该指定什么数字作为该字符串的长度?
我想我必须指定7,最终的形式应该是7:gâteau
因为符号â按照utf-8编码占用2个字节,而该字符串中的其余符号按照utf-8编码占用1个字节。
我还听说不建议在 java String 实例中存储编码数据。
换句话说,当我对数据 block 进行 Bencode 时,我应该将其存储为字节数组,而不应将其转换为 java String 值以避免编码问题。
我的假设正确吗?
最佳答案
According to the specification ,bencoded 字符串是一个字节序列,您必须指定该序列的字节数作为其长度。
对于“gâteau”的情况,您应该指定 7 作为长度,因为字符 â 占用 2 个字节。
关于java - java中Bencode字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31408825/