3

如何确定可可中的字符串编码?最近我正在研究一个收音机播放器。有时 id3 标签文本会出现乱码。

这是我的代码:

CFDictionaryRef audioInfoDictionary;
UInt32 size = sizeof(audioInfoDictionary);
result = AudioFileGetProperty(fileID, kAudioFilePropertyInfoDictionary, &size, &audioInfoDictionary);

ID3 信息在 audioInfoDictionary 中。有时 id3 不使用 utf8 编码,并且标题、艺术家名是乱码。

有没有办法确定字符串使用什么编码?

特别感谢!

4

1 回答 1

3

虽然它是一个 NSString 对象,但没有特定的编码,因为它保证使用创建时确定的编码来表示放入其中的任何内容。请参阅文档的使用编码部分

您从哪里获得 ID3 标签?您“接收”此信息的时间是确定其编码的最佳时间。有关初始化程序列表,请参阅创建和初始化字符串以及接下来的几节(用于文件和 url 创建)。其中一些允许您设置编码,而另一些则传回(通过引用)系统在创建字符串时确定的“最佳猜测”编码。查找带有“usedEncoding:”的方法以获取系统报告的猜测。

所有这一切真的取决于到底是什么给了你那个字符串。您是从文件(MP3)还是网络服务(互联网收音机)中读取它?如果是后者,服务器的响应应该包括编码,如果那是错误的,除了猜测之外没有什么可做的。

于 2012-05-20T15:49:41.743 回答