簡體   English   中英

這是Android中獲取UTF-16字節數組的最有效的getBytes

[英]Which is the most efficient getBytes in Android to get a UTF-16 byte array

因此,Android字符串在內部存儲為UTF-16。 我不知道是內部使用的是Big Endian還是Little Endian。

如果我調用getBytes(“ UTF”),則會獲得帶有BOM的BE字節數組。 這是否意味着這也是字符串在內部存儲的方式?

我有一個C API,需要使用UTF-16字符的字節緩沖區進行調用。 如果需要,我可以調整C API來管理字節序。

我要避免的是,如果不需要管理字節性,就可以在Java級別進行數組復制。 為此,我需要知道String內部是否以Big或Little字節序存儲。 如果String內部存儲在Little Endian中,則我更喜歡僅調用getBytes(“ UTF16-LE”)並將其作為Little Endian直接傳遞給本機代碼。

那么,誰知道Android在幕后使用了什么,以及對效率最高的getBytes(...)的調用?

您可以檢查ByteOrder.nativeOrder()返回的值。 jdk javadoc暗示使用本機字節序可以提高性能。 但是您可能應該在得出結論之前先檢查一下對android的影響。

暫無
暫無

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

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