iOS消息和智能标点符号

iOS 11最终为我们这些关心排版细节的人添加了期待已久的功能:聪明的标点符号您可以在设置→常规→键盘中启用此功能When enabled, quotes and apostrophes (like "this" and 'this') are automatically turned into their proper counterparts (like “this” and ‘this’), two hyphens in a row (--) are turned into a proper em-dash (—), etc.

我说“终于”了,因为MacOS已经在标准文本编辑系统中使用了多年的功能,我想不出一个很好的理由为什么它不是在iOS多年前我可以说这不是一个难以解决的编程工作,因为我已经解决了在更加困难的散文中加入标点符号的背景,而不会弄乱HTML标签中必要的愚蠢引用。

在iOS最近的一些更新中(我认为11.2.5,但它可能是早期的11.2.x更新),智能标点符号在消息中停止工作 - 据我所知,只有消息Why? My best guess: unintended consequences when sending SMS messages.

这是苹果帮助论坛解决这个问题的一个主题SMS是一个很老的标准,它是用它设计的ASCII字符集心里仅包含ASCII字符的SMS消息最多可包含160个字符Include even just a single non-ASCII character, though — such as a curly quote or apostrophe, or an emoji — and the entire message must be encoded using a 16-bit alphabet, limiting the message to just 70 characters because the length of the message in bytes remains fixed by the protocol.1

简而言之:如果你坚持使用哑巴引号,你可以在短信中输入160个字符只包含一个智能/卷曲引号,您只能获得70个字符。

我不确定这就是为什么iOS 11的智能标点符号功能不再适用于消息,但这是我能想到的唯一解释(我已经看到一些猜测,这可能是一个机器学习错误,但机器学习错误,如臭名昭着的“我→怪异的A”惨败从几个月前开始,不仅限于一个像消息这样的应用程序“智能标点符号”是与“设置”应用中“预测文本”的单独设置 - 您可以使用其中任何一个。)

但如果我说对的原因是对的,那为什么它适用于iMessage消息 - a.k.ablue-bubble messages — too? iMessage messages aren’t limited by the antiquated constraints of SMS in any other way, so why limit them typographically?

这是一个结局很快的故事,因为它看起来像iOS 11.3将解决这个问题安装后今天是新的11.3开发者测试版在iPad和iPhone上,当写入(蓝色)iMessage时,智能标点符号会回来,并且仅在写入(绿色)SMS时才会被禁用。2

聪明。


  1. 从技术上讲,SMS消息使用GSM-7文本编码而不是ASCIIBut like ASCII, GSM-7 is a 7-bit encoding limited to just 128 characters. ↩︎

  2. 它仍然没有那么聪明考虑一下这种情况使用需要16位编码的语言编写的人,因此在所有SMS消息中限制为70个字符Why disable smart punctuation for them? ↩︎︎