gpt4 book ai didi

WinMerge:如何比较内容相同但编码不同的文件?

转载 作者:行者123 更新时间:2023-12-02 06:58:51 31 4
gpt4 key购买 nike

动机:我正在重写一个文档——稍后要处理的文本文件。新源现在使用 UTF-8。大部分来源是相同的。我需要找到差异。

详细信息:旧的文档源使用 cp1250 编码,新源使用 UTF-8。新旧源都使用相同的行结尾 (CR+LF)。我正在使用 WinMerge 应用程序 (WinMergeU.exe) 的 Unicode 版本,版本 2.12.4.0。

它几乎可以工作,但是......当线条不同时,它们最初被深黄色标记为 block ,并且使用较浅的颜色标记不同的部分。当将红色 block 光标移动到那里时,下面的 Pane 将显示不同的部分。

但是,在文本(的 Unicode 表示形式)相同的情况下,文本 block 也会用深黄色标记。红色 block 也会移动到文件的这些部分。在这种情况下,下面的两个 Pane (显示差异)包含相同的文本,并且没有任何内容被标记为不同。见下图:

Example of the line that should not differ.

第一行不同——这没关系。但第二行在视觉上具有相同的内容。唯一超出 ASCII 范围的字符是 Ú。它在编码源中具有不同的表示形式。这会导致该行标记为不同,但下面的 Pane 不会将该行中的任何内容标记为不同。

另请参阅以下完全相同的段落(仅源中的编码不同,使用相同的行结尾)。

看起来初始比较是基于线条的二进制表示。是否有任何设置告诉 WinMerge 比较(我的意思是 block 标记)应该基于 Unicode 内容?

我很努力,但还没有成功。

更新:以上问题适用于最新稳定版 2.12.4。 Beta 版本 2.13.22 非常适合我。请参阅my answer below .

最佳答案

这并不能真正回答您有关 WinMerge 的问题,但是您是否考虑过使用另一个 diff 程序?我最喜欢的之一是 kdiff - http://kdiff3.sourceforge.net/

当我使用一个 UTF8 文件和另一个 Unicode 文件对 KDiff 进行比较时,我得到以下结果:KDiff Compare Warning

这是比较屏幕 - 请注意,文件上的编码不同,但从文本角度来看,文件被认为是相同的:

KDiff Compare Results

关于WinMerge:如何比较内容相同但编码不同的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235484/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com