如何确定可可中的字符串编码?最近我在做一个player.Sometimes电台的id3标签,文本被乱码。
下面是我的代码:
CFDictionaryRef audioInfoDictionary;
UInt32 size = sizeof(audioInfoDictionary);
result = AudioFileGetProperty(fileID, kAudioFilePropertyInfoDictionary, &size, &audioInfoDictionary);ID3信息在audioInfoDictionary中。有时id3不使用utf8编码,标题、艺人姓名都是乱码。
有没有办法确定字符串使用什么编码?
特别的thx!
发布于 2012-05-20 23:49:42
虽然它是一个NSString对象,但没有特定的编码,因为它保证使用在创建它时确定的编码来表示放入其中的任何内容。请参阅文档的Working With Encodings section。
你从哪里得到ID3标签的?您“接收”此信息的时间是确定其编码的最佳时间。有关初始化器的列表,请参阅Creating and Initializing Strings和下面几节(用于创建文件和url )。其中一些让您设置编码,而另一些则(通过引用)传递回系统在创建字符串时确定的“最佳猜测”编码。查找带有"usedEncoding:“的方法,以获取系统报告的猜测。
所有这一切实际上都依赖于到底是什么给了你这个字符串。您是从文件( MP3)还是从web服务(互联网广播)读取的?如果是后者,服务器的响应应该包括编码,如果这是错误的,除了猜测,没有什么可做的。
https://stackoverflow.com/questions/10674131
复制相似问题