引号,这个存在于所有键盘上的符号,我最近发现我对它并不了解。在大部分编程语言中,字符串都是由引号来定义的,而且必须是半角引号。但是键盘上的引号按键对应的并不总是同一个字符。常见的有这三种 ”〞”,这些看起来差不多的双引号对机器来说完全不同,而且差别不仅仅是全角和半角,不同的字符可能在不同的字体中看起来完全一样!所以当我不得不使用富文本编辑器的时候总是无法抑制内心的烦躁(尤其是office中爱自作聪明的“自动更正”功能)。单引号的情况也类似,而且还有个添乱的——Linux脚本中常用的“反引号”(数字1左侧的字符 ),让这种混乱局面雪上加霜。
我于是到“Unicode字符百科”中系统检索了一下, 结果发现了一个大坑……
从形态上看,引号有两种:直引号(straight quotes,也称dumb quote)和弯引号(curly quotes,也叫智能引号,smart quotes)。前者源于早期计算机字符系统对书写规则的简化;而后者则根植于出版印刷界的规范和传统。在人机交互的场景中,程序员们始终坚持使用最小的字符集(键盘所代表的ASCII字符集)来进行输入,在这个国际编码规范中只有半角的单双引号是合法的引用符号。但在用于桌面出版的编辑器中,弯引号以及斜引号才足够清晰规范。所以office会默认将直引号替换为弯引号。在计算机系统不断满足工业需求的过程中,日益扩大的字符集也包含了许多冗余,加上程序员们对出版规范的一知半解,错误的符号使用便一发不可收拾。
常见的类似引号的符号有下面几种:
上面这三个符号都是国际通用的,不需要借助任何输入法便可直接输入显示。所以它们几乎被用在所有的程序语言中。这样的符号对于机器来说不难识别,但是对于阅读者来说未免不够美观清晰。于是现代的字符集中陆续增加了下面的符号: