目前,我正试图在我的NSData应用程序中解析一个iOS。问题是,我似乎找不到合适的希伯来语编码来解析。我必须使用Windows-1255编码(用于windows的希伯来语编码类型)或ISO 8859-8编码来解码数据,否则我就会被胡说八道。我最接近解决这个问题的方法就是用
CFStringConvertEncodingToNSStringEncoding(CFStringEncodings.ISOLatinHebrew)然而,它抛出了'CFStringEncodings' is not convertible to 'CFStringEncoding' (注意编码的与编码)。
为了正确地编码数据,我能做些什么?
谢谢!
发布于 2015-01-09 14:13:35
问题是,CFStringEncodings是基于CFIndex的枚举(这反过来是Int的类型别名),而CFStringEncoding是UInt32的类型别名。因此,您必须显式地将.ISOLatinHebrew值转换为CFStringEncoding。
let cfEnc = CFStringEncodings.ISOLatinHebrew
let enc = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(cfEnc.rawValue))发布于 2015-01-09 13:43:02
结果我得把手弄脏一点。我看到CFStringEncodings与文件CFStringEncodingsExt.h有关系,所以我搜索了这个文件以获得一些帮助。突然间,我遇到了一个巨大的CF_ENUM,它包含了我所需要的所有CFStringEncodings的UInt32值!
所以事实证明kCFStringEncodingISOLatinHebrew = 0x0208, /* ISO 8859-8 */
我鼓励每一个面临这个编码问题的人去那个文件并搜索他所需要的编码。
https://stackoverflow.com/questions/27861724
复制相似问题