Windows 文化设置:撇号与右单引号

Posted

技术标签:

【中文标题】Windows 文化设置:撇号与右单引号【英文标题】:Windows Culture Settings: apostrophe vs right single quotation mark 【发布时间】:2018-01-29 10:06:50 【问题描述】:

突然间,我的机器上的一些测试变成了红色,并失败并显示以下消息:Input string was not in a correct format.

这些测试采用一堆数字和字符串,并将它们与给定的文化进行比较(如"de-CH" 这里):

[TestCase(12345.67, "12'345.67", "de-CH")]
[TestCase("12'345.67", 12345.67, "de-CH")]
[TestCase(-12345, "-12'345", "de-CH")]

我们发现,我们需要将撇号(参见 12'345)更改为“右单引号”以再次将测试变为绿色:

Unicode character                   Oct     Dec     Hex     html
'   apostrophe                      047     39      0x0027  '
’   right single quotation mark     020031  8217    0x2019  ’

所以它们现在看起来像这样,我的机器很喜欢它。

[TestCase(12345.67, "12’345.67", "de-CH")]
[TestCase("12’345.67", 12345.67, "de-CH")]
[TestCase(-12345, "-12’345", "de-CH")]

不幸的是,这是我们办公室里唯一的一个。

我可以想象这与几天前应用于我的机器的 Windows Fall Creators Update [1709] 相关,但没有应用于我的同事。

有谁知道瑞士的默认 Windows 设置是否发生了变化,或者他们是否将分隔符从撇号更改为右单引号?

【问题讨论】:

【参考方案1】:

尝试直接从注册表更改“千” 提示:这个即将在 vb.net 中的代码行:

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sThousand", ",")

【讨论】:

谢谢,但这不是问题所在。我不想在我的机器上本地更改它(de-CH 甚至不是我当前的文化)。我刚遇到这个问题,想知道它来自哪里。字符确实发生了明显变化。

以上是关于Windows 文化设置:撇号与右单引号的主要内容,如果未能解决你的问题,请参考以下文章

pcl6.exe v9.15 静默转换 APOSTROPHE => 右单引号

撇号的 HTML 代码

从 JSON 到 Android 的右单引号

bash中双引号单引号反撇号的用法

Java用'(撇号/单引号)和\(反斜杠)一起替换问题

声明包含单引号/撇号的 char 值的最清晰方法