除了 CFStringGetSystemEncoding() 之外,如何在 Swift 中检索 CFStringEncoding?

how to retrieve CFStringEncoding in Swift other than CFStringGetSystemEncoding()?

let cStringRef : CFStringRef = CFStringCreateWithCString(nil, NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")! , kCFStringEncodingMacRoman)

此编码无效,尽管它存在于文档中。

为了获得 MacRoman,我使用了 CFStringGetSystemEncoding()

我的问题是如何检索除此之外的 CFStringEncoding。

如果您只是想将 Luffy.mp3 的路径转换为 ​​CFString,请使用:

let cStringRef = NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")! as CFString

编辑: 如果您想走得更远:

let path = NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")!
let cString = path.cStringUsingEncoding(NSMacOSRomanStringEncoding)!

let cfString = CFStringCreateWithCString(nil, cString, CFStringBuiltInEncodings.MacRoman.rawValue)

该代码没有任何意义无论如何

路径是一个 NSString,直接兼容 String 和 CFStringRef。任何地方都看不到 C 字符串。

我真的建议您弄清楚为什么要使用 CFString(这很不寻常)并删除该用法。或者,如果您一直在从互联网上复制一些代码,请去找一些更新的代码进行复制。如果您的 Swift 代码使用了 CFStringRef,那么您就做错了。