我在计算字符串长度时遇到问题。我有以下字符串:
30 ctime=1460687405.982514823\n
其格式如下:
扩展 header 应包含一个或多个记录,每个记录的构造如下:
“%d %s=%s\n”,长度,关键字,值
扩展头记录应根据 ISO/IEC10646-1:2000 标准 (UTF-8) 进行编码。显示的长度字段、空白、等号和换行符应限制为以 UTF-8 编码的可移植字符集。 keyword
和 value
字段可以是任何 UTF-8 字符。 length
字段应为扩展头记录的十进制长度(以八位字节为单位),包括尾随换行符。
问题在于长度
字段。
如何计算尺寸?对字节值求和?整个 String.length()?
什么是八位字节?
最佳答案
一个八位组
是一个8位字节。
Java 中的字符串是一组 16 位字符。当您将这些 16 位 [unicode] 字符编码为 UTF-8 编码字节时,该字符串的大小(此时可能是一个 byte[]
)这就是我们所要求的。请参阅this question有关将 Java 字符串编码为 UTF-8 的更多详细信息。
关于java - 计算 "octets"中字符串的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948981/