【发布时间】:2014-02-12 23:05:00
【问题描述】:
因此,Android 字符串在内部存储为 UTF-16。我不知道内部使用的是Big Endian还是Little Endian。
如果我调用 getBytes("UTF"),我会返回一个带有 BOM 的 BE 字节数组。这是否意味着这也是字符串在内部存储的方式?
我有一个需要使用 UTF-16 字符的字节缓冲区调用的 C API。如果需要,我可以调整 C API 来管理字节序。
如果不只是为了管理字节序,我想避免的是在 Java 级别进行数组复制。为此,我需要知道内部的字符串是存储在大端还是小端。如果字符串内部存储在 Little Endian 中,我更喜欢调用 getBytes("UTF16-LE") 并将其作为 Little Endian 直接传递给本机代码。
所以有人知道 Android 在后台使用什么以及最有效的 getBytes(...) 调用吗?
【问题讨论】:
标签: java android unicode java-native-interface utf-16