【问题标题】:Are there any keyboard character code differences between PC and Mac?PC 和 Mac 之间是否有任何键盘字符代码差异?
【发布时间】:2019-09-27 06:38:53
【问题描述】:

所以我正在开发一个使用 PHP/JS 的网站以及一个数据库。我有一位同事向我发送在 Apple 设备上编写的文档,而我使用的是 PC。由于我无法使用 Mac,因此我想知道在不同键盘上输入的空格和标点符号是否相同。

我希望能够复制文档的内容并将其粘贴到数据库中,但是我不想假设 PC 破折号与 Mac 破折号相同(这可能是实际的减号).. 或者 PC 空间变成了 Mac 窄/en 空间。

我可以测试收到的文件,但她到处工作,永远不知道她在哪里写了什么。

这是一个编程问题,因为我正在粘贴数学表达式,这些字符会产生影响......并且还使用 PHP 和 JavaScript 来解释这些字符。

【问题讨论】:

  • 与“键盘”无关。这是关于文本编码和软件的。您可以查看文档并查看字符代表的代码点。

标签: ios macos keyboard


【解决方案1】:

主要问题是文档中的字符编码。很可能是完全跨平台的 Unicode 编码(例如 UTF-8)。

使用美式键盘布局的人(可能还有大多数其他人)打算键入诸如破折号/连字符/减号之类的内容很可能会产生 HYPHEN-MINUS U+002D。当然,有多种输入方式 EN DASH U+2013、EM DASH U+2014、SMALL EM DASH U+FE58、HYPHEN U+2010 等,但用户必须故意这样做。不会因为他们使用的是 Mac 而例行公事。

此外,一些编辑器或文字处理器可能会进行“智能替换”,将 ASCII 字符替换为更精美(印刷更正确)的非 ASCII 字符。这将独立于 Mac 与 PC。如果这样做,角色仍然会这样出现在 PC 上,但如果您使用文档数据对这种差异很敏感(显然是这种情况),那么这将是有问题的。

Space 不太可能是普通的 SPACE U+0020 以外的任何东西。当然,有多种输入变体的方法,例如 NO-BREAK SPACE U+00A0、EN SPACE U+2002、EM SPACE U+2003 等,但用户必须不遗余力地输入这些变体。而且我怀疑智能替换会取代正常的空格。

【讨论】:

  • 谢谢。我没有考虑过“智能”替换,但我可以告诉她使用简单的文本编辑器来避免这种情况。
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 2013-07-11
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
相关资源
最近更新 更多