1

目前,我正在尝试NSData在我的 iOS 应用程序中解析一个。问题是,我似乎找不到合适的希伯来语编码进行解析。我必须使用Windows-1255编码(Windows 的希伯来编码类型)或ISO 8859-8编码对数据进行解码,否则我会得到纯乱码。我最接近解决问题的方法是使用

CFStringConvertEncodingToNSStringEncoding(CFStringEncodings.ISOLatinHebrew)

但是它会抛出'CFStringEncodings' is not convertible to 'CFStringEncoding'(注意 Encoding s vs Encoding)。

我该怎么做才能正确编码数据?

谢谢!

4

2 回答 2

3

问题是这CFStringEncodings是一个基于的枚举CFIndex (它又是 的类型别名Int),而CFStringEncoding是 的类型别名UInt32。因此,您必须将.ISOLatinHebrew 值显式转换为 a CFStringEncoding

let cfEnc = CFStringEncodings.ISOLatinHebrew
let enc = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(cfEnc.rawValue))
于 2015-01-09T14:13:35.697 回答
0

原来我需要弄脏我的手。我看到这CFStringEncodings与文件有关CFStringEncodingsExt.h,所以我在文件中搜索了一些帮助。突然间,我遇到了一个巨大的CF_ENUM,其中包括我所需要的——所有这些CFStringEncodings都是他们的UInt32价值!

所以事实证明kCFStringEncodingISOLatinHebrew = 0x0208, /* ISO 8859-8 */

我鼓励所有面临这个编码问题的人去那个文件并搜索他需要的编码。

于 2015-01-09T13:43:02.827 回答