if let encoding = String.Encoding(rawValue: 999) {
// ...
}
生成一个编译器错误,称"条件绑定的初始值设定项必须具有可选类型,而不是"String.Encoding",因为尽管有docs saying the String.Encoding initializer is failable个,但它不是并且很乐意创建不存在的编码.
如何判断初始化器返回的编码是否为实际编码?
我有两个 idea
- 判断字符串.编码描述不为空.这假设支持的编码必须有描述
- 编码一些东西,例如
"abc".data(using: encoding) == nil
,它假设字符串"abc"可以通过所有支持的编码进行编码