String 以字节存储字符串的最有效方法是什么?

String 以字节存储字符串的最有效方法是什么?,string,byte,String,Byte,假设我有一个类似字节码的简单文件格式来保存数据。 如果我想存储一个字符串,我是否应该像在源文件中那样存储,其中某个字节之间的所有字符都是字符串, 或者我应该先存储字符串的长度,然后再存储字符串字节 或者这两种解决方案都很糟糕,如果是,我可以使用哪种解决方案?这取决于您是否要存储: 一串 许多字符串 不同长度的字符串 一模一样 对于以上所有内容,字符串是否包含以下内容也很重要: 任何字符 只有某些字符 格式化 通常,您应该使用Unicode。 对于单个字符串,您只需使用整个文件来包含该

假设我有一个类似字节码的简单文件格式来保存数据。
如果我想存储一个字符串,我是否应该像在源文件中那样存储,其中某个字节之间的所有字符都是字符串,
或者我应该先存储字符串的长度,然后再存储字符串字节


或者这两种解决方案都很糟糕,如果是,我可以使用哪种解决方案?

这取决于您是否要存储:

  • 一串
  • 许多字符串
    • 不同长度的字符串
    • 一模一样
对于以上所有内容,字符串是否包含以下内容也很重要:

  • 任何字符
  • 只有某些字符
  • 格式化
通常,您应该使用Unicode。 对于单个字符串,您只需使用整个文件来包含该字符串,文件的结尾将与字符串的结尾相同。不需要存储字符串的长度

如果字符串的长度不完全相同,可以使用内联分隔符分隔字符串。通常,换行符对此很有用(特别是因为许多编程语言支持这种逐行读取文件的方式),但其他标记(如tab)也很常见

CSV文本文件通常使用双引号括起包含逗号(或其他列分隔符)(否则表示下一列值开始)或换行符(否则表示下一行)的字符串。
当然,现在的问题是如何在字符串中存储双引号


如果要存储格式,可以使用标记语言(html),或者它可能足以允许换行和/或某些标记。

我在否决投票时做错了什么?