我不确定该问题是否有意义。我正在转换从ID3标记获取的字节数组并将其转换为字符串。ID3标签中的大多数文本帧使用ISO 8859-1编码,但这取决于帧。无论如何,如果您查找ISO 8859-1代码中的0x00是无效的。
要使情况更加复杂,由于程序员错误或格式不良,一些字符串以0x00结尾,而其他字符串则不是。
使用ISO 8859-1编码将一系列字节转换为字符串时,您是否必须手动检查字符串的末尾是否为空?或者编码对象通过其用于首次转换的任何方法正确处理null?此外,是否存在某种函数可以规范化或“修复”空终止字符串?
当您尝试显示这些字符串时,它们不能正确显示。
我在此特定项目中使用C#。关于ID3标签的一些额外信息:ID3规格。
要使情况更加复杂,由于程序员错误或格式不良,一些字符串以0x00结尾,而其他字符串则不是。
使用ISO 8859-1编码将一系列字节转换为字符串时,您是否必须手动检查字符串的末尾是否为空?或者编码对象通过其用于首次转换的任何方法正确处理null?此外,是否存在某种函数可以规范化或“修复”空终止字符串?
当您尝试显示这些字符串时,它们不能正确显示。
我在此特定项目中使用C#。关于ID3标签的一些额外信息:ID3规格。
我是否完全误解了整件事?空终止符只是一种特定语言处理字符串的方式,与编码无关吗?
- 编辑:我使用了System.Text.Encoding.GetEncoding("iso-8859-1"),然后是一个GetString调用。