什么是 Pascal 风格的字符串?

What is a Pascal-style string?

Photoshop file format documentation 提到了 Pascal 字符串,但没有解释它们是什么。

那么,它们是什么,它们是如何编码的?

Pascal 风格的字符串有一个前导字节 (length),后跟 length 字节的字符数据。

这意味着 Pascal 风格的字符串只能编码长度在 0 到 255 个字符之间的字符串(假设是单字节字符编码,例如 ASCII)。

顺便说一句,另一种流行的字符串编码是 C 风格的字符串,它没有长度说明符,但使用零字节来表示字符串的结尾。因此它们没有长度限制。

然而,其他编码可能会使用更多的前缀字节来促进更长的字符串。终止符 bytes/sentinels 也可以与长度前缀一起使用。