转载

引号字符种种

引号字符种种 引号,这个存在于所有键盘上的符号,我最近发现我对它并不了解。在大部分编程语言中,字符串都是由引号来定义的,而且必须是半角引号。但是键盘上的引号按键对应的并不总是同一个字符。常见的有这三种 ”〞”,这些看起来差不多的双引号对机器来说完全不同,而且差别不仅仅是全角和半角,不同的字符可能在不同的字体中看起来完全一样!所以当我不得不使用富文本编辑器的时候总是无法抑制内心的烦躁(尤其是office中爱自作聪明的“自动更正”功能)。单引号的情况也类似,而且还有个添乱的——Linux脚本中常用的“反引号”(数字1左侧的字符 ),让这种混乱局面雪上加霜。
我于是到“Unicode字符百科”中系统检索了一下, 结果发现了一个大坑……

从形态上看,引号有两种:直引号(straight quotes,也称dumb quote)和弯引号(curly quotes,也叫智能引号,smart quotes)。前者源于早期计算机字符系统对书写规则的简化;而后者则根植于出版印刷界的规范和传统。在人机交互的场景中,程序员们始终坚持使用最小的字符集(键盘所代表的ASCII字符集)来进行输入,在这个国际编码规范中只有半角的单双引号是合法的引用符号。但在用于桌面出版的编辑器中,弯引号以及斜引号才足够清晰规范。所以office会默认将直引号替换为弯引号。在计算机系统不断满足工业需求的过程中,日益扩大的字符集也包含了许多冗余,加上程序员们对出版规范的一知半解,错误的符号使用便一发不可收拾。
常见的类似引号的符号有下面几种:

  • ' :半角单引号 Apostrophe,源自ASCII字符集,Unicode字符集编号 U+0027。在大多数编程语言中用于定义字符串,可与双引号通用。在Unix/Linux命令中表示强引用,其中包含的所有特殊字符均作为普通字符处理。
  • " :半角双引号 Quotation Mark,源自ASCII字符集,Unicode字符集编号 U+0022。在大多数编程语言中用于定义字符串,可与单引号通用。在Unix/Linux命令中表示弱引用,所包含的特殊字符仍有效。
  • :抑音符 Grave Accent,也就是汉语拼音中的“去声”。Unicode字符集编号 U+0060。这是ACII编码出于国际化的考虑而加入的字符。但是对于大部分无此需求的用户来说就如同鸡肋。不过对于程序员来说,键盘上的每一个按钮都是不可浪费的宝贵资源,他们很快就为它找到了新的用途,并重新命名为“反引号”(backquote, backtick)。例如在排版语言TeX中,反引号被视作左单引号,而两个连写的反引号则是左双引号。在Unix/Linux,Perl,Lisp等环境中,反引号所包含的命令都会在执行后返回结果用于后续的调用。

上面这三个符号都是国际通用的,不需要借助任何输入法便可直接输入显示。所以它们几乎被用在所有的程序语言中。这样的符号对于机器来说不难识别,但是对于阅读者来说未免不够美观清晰。于是现代的字符集中陆续增加了下面的符号:

  • “” :左右双引号 Left/Right Double Quotation Mark,Unicode字符集编号 U+201C/D。
  • ‘’ :左右单引号 Left/Right Single Quotation Mark,Unicode字符集编号 U+2018/9。
  • :上标符 prime,Unicode字符集编号 U+2032。
  • :双上标符 double prime,Unicode字符集编号 U+2035。

引号字符种种

引号字符种种

原文  http://gerry.lamost.org/blog/?p=295757
正文到此结束
Loading...