簡體   English   中英

Java中的Bencoded字符串長度

[英]Bencoded string length in java

我對bencoding有點困惑。

根據規范,當我使用bencode字符串時,我需要使用以下格式:

長度:字符串

字符串垃圾郵件變為4:垃圾郵件

我的問題: 4是本編碼字符串的符號數量,還是utf-8字節的數量?

例如,如果我要編碼字符串gâteau

應該指定什么數字作為此字符串的長度?

我想我必須指定7 ,最終形式應該是7:gâteau

這是因為根據utf-8編碼,符號â占用了2個字節,而根據utf-8編碼,此字符串中的所有其余符號都占用了1個字節。

我也聽說不建議在Java String實例中存儲本編碼的數據。

換句話說,當我對一個數據塊進行Bencode編碼時,應將其存儲為字節數組,並且不應將其轉換為java String值,以避免編碼問題。

我的假設正確嗎?

根據規范 ,bencoded字符串是一個字節序列,您必須為此序列指定qty個字節作為其長度。

並且,從規范中:“ 所有字符串值都是UTF-8編碼的 ”。 規格

對於使用“gâteau”的情況,應將長度指定為7 ,因為字符â占用2個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM