在 Beyond Compare 中忽略非 UTF-8 字符

Ignore non UTF-8 characters in Beyond Compare

我的项目包括一些用非 UTF-8 字符(如平方符号)表示的测量单位。对于大多数编辑器,这些显示带有以下字符:�。

我正在将部分源代码与 beyond compare 进行比较,我想忽略这些符号出现的情况。我尝试了这两种解决方案:

Beyond Compare - ignore certain text strings?

How do I make Beyond Compare ignore certain differences while comparing versions of Delphi Form Files

但在这两种情况下,差异仍以红色标记(?与 � 或 ² 与 �)。我该如何解决?

如果字符是不可打印的字符,您可以在Beyond Compare 4的文本比较中使用十六进制值将它们定义为不重要的文本。

举个例子,假设字符是上标2,即平方符号,十六进制值为0x00B2。

  1. 在文本比较中加载文件。
  2. 单击“规则”工具栏按钮(裁判图标)。
  3. 在“重要性”选项卡中,单击“编辑语法”。
  4. 在语法选项卡中,单击 +。
  5. 元素名称:平方
  6. 文本匹配:\x{00B2}
  7. 检查正则表达式
  8. 单击“确定”。
  9. 单击“确定”。
  10. 在语法元素列表中,取消选中平方以使其不重要。
  11. 单击“确定”。

如果查看 | Ignore Unimportant Text 已打开,匹配 Squared 的差异将显示为匹配项(黑色)。如果关闭,匹配平方的差异将显示为蓝色。

在上述指令中,正则表达式 \x{nnnn} 匹配十六进制值为 nnnn 的字符。

参考文献:

Unicode Character Superscript 2

Define Unimportant Text in Beyond Compare

Beyond Compare Help - Regular Expression Reference