Swift 5将使用UTF-8作为首选字符串编码

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 5将使用UTF-8作为首选字符串编码相关的知识,希望对你有一定的参考价值。

Swift 官方博客公布了 Swift 5 将首选字符串编码从 UTF-16 切换到 UTF-8 的消息,同时保留与 Objective-C 有效的互操作性。因为 String 类型会对这些底层问题进行抽象,所以开发者不需要对源代码进行更改。

切换到 UTF-8 实现了 String 的长期目标之一 —— 实现高性能处理,这也是关注性能的开发者呼声最大的请求。更重要的是,该功能还为将来提供更高性能的 API 奠定了基础。字符串的首选编码将会成为影响 Swift ABI 性能的一部分,因此这次在 Swift 5 版本中为了 ABI 的稳定性而实现该功能是势在必行的。

背景

尽管 String 类型在技术上是同一个结构,但它可以以多种形式存在。我们不妨将 String 视为手工枚举,使用传统的 bit-twiddling 技术手工制作,以生成紧凑而高效的代码。

Swift 5将使用UTF-8作为首选字符串编码

由上图可以看到,Swift 5 之前,字符串内容以 UTF-16 和 ASCII 两种形式存储。出于与现代计算环境的高效兼容性、简化相关操作以及对性能提升的考虑,Swift 决定在 Swift 5 中使用 UTF-8 作为首选字符串编码。

对现有的影响

按照官方说法,在代码层面,这个变动对大多数开发者的影响不大,并且依然会提供与 Objective-C API 的高效互操作性。


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:


推荐阅读




「在看」一下分享给更多开发者↓↓↓

以上是关于Swift 5将使用UTF-8作为首选字符串编码的主要内容,如果未能解决你的问题,请参考以下文章

iOS Emoji编解码(OBJ-C/Swift)

字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)

将 Swift 编译为 WebAssembly

如何使用 Emscripten 将 Hello Word 从 Swift 编译为 JavaScript

swift 使用枚举样本swift函数对象,允许将函数编译为枚举并被调用

尝试在 Swift 项目中使用 Objective C 可可豆荚,桥接文件编译为 Swift 代码