这两个角色有什么区别?
有争议!
从名称来看,人们可能会认为卷曲的仅用作引号,而直的仅用作真正的撇号,即省略字母的指示符。
然而,传统的英语排版实践总是使用卷曲的来呈现撇号。就我个人而言——也许只有我一个人在这里——我不喜欢这样。它可能会使阅读更加含糊:
“他说,‘这是炸鱼薯条’……”
由于撇号是直的,引文结束的地方(稍微)更清楚:
“他说,‘这是炸鱼薯条’……”
撇号是“直的”对我来说更有意义,因为它指示省略字母的目的没有固有的方向性,而引号的目的显然是不对称的。
当然,在传统的 ASCII 中,没有智能引号,因此撇号始终用于两者......
在某些 Windows 安装上,LoadString 在尝试加载包含 U+2019 的字符串时失败,但它在其他一些 Windows 安装上有效。
在这里,您将遇到“ANSI”代码页的恐怖。这是默认字符编码,在不同的 Windows 安装区域设置中有所不同。因此,在西部地区的计算机上读取资源时与在日语 Windows 上读取资源时会得到不同的结果。
非常不幸的是,Windows 有不同的默认代码页,而不是使用像 UTF-8 这样的单一全局编码,但现在修复为时已晚。如果您将整个应用程序编译为 Unicode 应用程序(因此您将使用LoadStringW
而不是LoadStringA
) 那么你可以更好地处理非 ASCII 字符,比如智能引号。
如果您无法转移到 Unicode 应用程序,那么您就会陷入困境。您将无法在全局范围内处理非 ASCII 字符(例如智能引号),因此请坚持使用 ASCII 字符,例如单独的直撇号 。
U+2019 字符出现在我从 Word 复制的资源文件的字符串中
是的,Word 有一个烦人的自动更正功能,它会将您键入的所有撇号替换为智能引号。当您处理代码时,这是特别不可取的,因为 会破坏程序;但即使对于简单的古英语来说,这也是错误的,因为不可能正确猜测引用的所需方向。 (例如,它会将“fish 'n' Chips”中的撇号之一弄反。)
我建议关闭自动替换为智能引号功能。如果您想要智能引号,最好刻意输入它们。不幸的是,它们在大多数键盘布局上打字并不方便,通常需要晦涩的 Alt+小键盘序列。我个人使用this one http://www.doxdesk.com/software/win/eurokb.html将它们放到 Alt+[] 键上。