是否有一个列表或图表显示哪个版本的Unicode在各种OS X和iOS版本上受支持?我找不到苹果公司的任何文档。
是否有一个列表或图表显示哪个版本的Unicode在各种OS X和iOS版本上受支持?我找不到苹果公司的任何文档。
我一直在寻找每个OS X版本支持的表情符号。以下是我的研究结果:
苹果公司在其对Unicode的支持上有些模糊,但Mac OS X和iOS名义上支持Unicode 4.0。请参阅NSString文档。
需要注意以下几点:
由于Unicode(包括所有版本)所表示的字符数量庞大,您可能需要进行测试以确定特定转换或操作是否适用于特定字符。但是,任何可以用UTF-16代码点或代理对表示的字符都可以直接用NSString
和CFString
表示(虽然它们的语义含义在旧的操作系统版本中可能无法使用,且可能呈现为未识别的字符)。
我发现Unicode版本6(2010)中引入的字符可能与Mojave或之前的版本不兼容。我正在运行最新的Mojave,无法呈现U+2099:https://www.compart.com/en/unicode/U+2099
诚然,这是一个StackOverflow问题41318999的概括版本。
/// Tests against the existence of a given unicode glyph on the present OS
///
/// - Returns: true if this unicode glyph exists (i.e, not a [?])
func unicodeAvailable() -> Bool {
let refUnicodeSize: CGFloat = 8
if let refUnicodePng = Character("\u{1fff}").png(ofSize: refUnicodeSize),
let myPng = self.png(ofSize: refUnicodeSize) {
return refUnicodePng != myPng
}
return false
}
let code:Character = "\u{2764}" // ❤
print(code.unicodeAvailable())
true
需要一种方法来创建给定字符的png表示。
在StackOverflow上提供了完整的描述,还有一个开源的GitHub项目。