动机: 我正在重写一个文档——稍后处理的文本文件。新来源现在使用 UTF-8。大部分来源是相同的。我需要找出差异。
详细信息:旧文档源使用 cp1250 编码,新源使用 UTF-8。新旧资源都使用相同的行尾 (CR+LF)。我正在使用 Unicode 版本的 WinMerge 应用程序 (WinMergeU.exe),版本 2.12.4.0。
它几乎可以工作,但是......当线条不同时,它们最初被深黄色标记为块,而不同的部分则使用较浅的颜色标记。将红色块光标移动到那里时,下面的窗格会显示不同的部分。
但是,在文本(的 Unicode 表示)相同的情况下,文本块也用深黄色标记。红色块也移动到文件的那些部分。在这种情况下,下面的两个窗格(显示差异)包含相同的文本,并且没有任何内容被标记为不同。见下图:
第一行不同——这没关系。但是第二行在视觉上具有相同的内容。ASCII 范围之外的唯一字符就在Ú
那里。它在编码源中具有不同的表示形式。这会导致该行被标记为不同,但下面的窗格并未将该行的任何内容标记为不同。
另请参阅以下完全相同的段落(仅源中的编码不同,使用相同的行尾)。
看起来好像最初的比较是基于行的二进制表示。是否有任何设置告诉 WinMerge 比较(我的意思是块标记)应该基于 Unicode 内容?
我很努力,但还没有运气。
更新:上述问题适用于最新的稳定版 2.12.4。测试版 2.13.22 非常适合我。请参阅下面的答案。