右单撇号与撇号?

Tri*_*ock 19 windows unicode resources atl

右单引号(U + 2019)与Apostrophe(U + 0027)

这两个字符有什么区别?

我遇到了这个问题,我使用CAtlString从资源文件加载字符串,在某些Windows安装中,LoadString在尝试加载包含U + 2019的字符串时失败,但它适用于其他一些Windows安装.U + 2019字符出现在我从Word复制的资源文件中的字符串中,U + 0027出现在我手工编码的stirng中.为什么LoadString(有时)会阻塞它?

bob*_*nce 31

这两个字符有什么区别?

值得商榷!

按照名称,可以想象卷曲只用作引号,而直的<'>仅用作真正的撇号,是省略字母的指示符.

然而,英语中的传统排版练习总是使用卷曲的<'>来呈现撇号.个人 - 我可能在这里独处 - 我不喜欢这个.它可以使更多的模糊阅读:

"他说,'这是鱼''筹码'......"

撇号是直的,它(略微)更清楚引用结束的地方:

"他说,'这是鱼''筹码'......"

撇号是"直的"对我来说更有意义,因为它表示省略的字母的目的没有固有的方向性,而引号在目的上显然是不对称的.

当然,在传统的ASCII中,没有智能引号,因此撇号总是用于...

在某些Windows安装中,LoadString在尝试加载包含U + 2019的字符串时失败,但它适用于其他一些Windows安装.

在这里,您将遇到'ANSI'代码页的恐怖.这是一种默认字符编码,在不同的Windows安装语言环境中有所不同.因此,在西部地区的计算机上,当您在日语Windows上阅读资源时,会获得不同的结果.

非常不幸的是,Windows有不同的默认代码页而不是像UTF-8那样使用单一的全局编码,但是现在修复已经太晚了.如果您将整个应用程序编译为Unicode应用程序(因此您将使用LoadStringW而不是LoadStringA),那么您可以更好地处理非ASCII字符,如智能引号.

如果你不能移动到Unicode应用程序,你有点卡住了.您将无法全局处理非智能引号等非ASCII字符,因此请坚持使用直接撇号等ASCII字符.

U + 2019字符出现在我从Word复制的资源文件中的字符串中

是的,Word有一个恼人的自动更正功能,用智能引号替换你键入的所有撇号.当你处理代码时,这将是特别不希望的,其中<\n>将破坏程序; 但即使是普通的老英语也是错误的,因为无法正确猜出所需的报价方向.(例如,它会以错误的方式获得"鱼'芯片"中的一个撇号.)

我建议关闭自动替换智能报价功能.如果你想要智能报价,最好刻意输入它们.不幸的是,它们在大多数键盘布局上输入都不方便,通常需要模糊的Alt +小键盘序列.我个人使用这个将它们放到Alt + []键上.