【发布时间】:2020-02-14 17:37:33
【问题描述】:
动机:我正在重写一个文档——稍后处理的文本文件。新来源现在使用 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 非常适合我。见my answer below。
【问题讨论】:
标签: winmerge