swift - 为什么在 Swift 的 String API 中包含 unicode 作为编码?
问题描述
我阅读了这个关于字符串编码的非常重要的博客。
读完之后,我意识到 unicode 是将字符映射到整数代码点的标准。这些整数如何存储在内存中是一个完全不同的概念。这就是发挥作用的地方,它定义了我们将这些整数存储在内存中的方式.utf8
。.utf16
在 Swift String
API 中,有一种方法可以为我们提供用于表示String
各种编码的数据字节:
func data(using encoding: String.Encoding, allowLossyConversion: Bool = false) -> Data?
此方法的第一个参数是 Type String.Encoding
。该结构Encoding
的编码声明为:
static let unicode: String.Encoding
现在突然之间,该方法可以给我String
使用编码的数据表示.unicode
现在这实际上与我在阅读上述博客后得出的结论相反。它给了我一个字符串的数据表示,即使认为 unicode 没有提供我如何存储它的详细信息。
谁能告诉我我在这里缺少什么?我现在真的很困惑。
解决方案
String.Encoding.unicode
是相同的String.Encoding.utf16
print(String.Encoding.unicode)
print(String.Encoding.utf16)
以上打印:
- 统一码 (UTF-16)
- 统一码 (UTF-16)
推荐阅读
- matlab - 在 Matlab 中用 ODE45 求解一个微分方程组
- javascript - 一次向 api 发出多个请求并将结果显示给模板视图引擎
- django - 使用 api 子目录在开发服务器上设置 Django 和 Webpack
- python - 气流+为什么气流返回不清楚错误
- ios - 使用 curl 命令进行本机反应以获取 api
- jquery - 如何使用 WordPress REST API 获取单个自定义 Post-Type 项目
- c++ - 两阶段功能模板编译:不是*仅* ADL 在第二阶段使用?
- c# - 导入Datatable c#时验证来自CSV文件的标题
- php - 如何使用 PHP 创建 React Native 登录并包含登录会话?
- php - 更改 Woocommerce 帐单地址字段中的字段宽度