[英]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個字節作為其長度。
對於使用“gâteau”的情況,應將長度指定為7 ,因為字符â占用2個字節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.