Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 通过notepadd++;终端上的差异比较是否失败_Windows_Unix_Character Encoding_Diff_Notepad++ - Fatal编程技术网

Windows 通过notepadd++;终端上的差异比较是否失败

Windows 通过notepadd++;终端上的差异比较是否失败,windows,unix,character-encoding,diff,notepad++,Windows,Unix,Character Encoding,Diff,Notepad++,我在windows上使用notepad++以UTF-8和ASCII格式保存了一个文本文件。该文本与UNIX版本具有相同的字母表示形式,diff声称该文本完全不同(例如1267C1267)。这些文件在二进制级别(xxd-betest.txt)上实际上是不同的,但是vimdiff的结果与vim不同:它显示它们是相同的。我猜是因为vimdiff在对文件执行diff之前呈现文本?为什么会有这种不一致性?检查比较文件中的行尾字符。可能是您在每行末尾使用\r\n保存了它们,而Unix版本则以\n终止。如果您

我在windows上使用notepad++以UTF-8和ASCII格式保存了一个文本文件。该文本与UNIX版本具有相同的字母表示形式,diff声称该文本完全不同(例如1267C1267)。这些文件在二进制级别(xxd-betest.txt)上实际上是不同的,但是vimdiff的结果与vim不同:它显示它们是相同的。我猜是因为vimdiff在对文件执行diff之前呈现文本?为什么会有这种不一致性?

检查比较文件中的行尾字符。可能是您在每行末尾使用
\r\n
保存了它们,而Unix版本则以
\n

终止。如果您使用
-b
选项进行
-diff
,它将忽略前导和尾随空格,包括行尾字符的差异。如果这不能解决问题,您可以使用
hd
(hextump)或
od-c
(八进制转储,显示ascii字符)对单个文件进行更仔细的检查。

这一差异就是我所学的所谓“按照规范工作”。我希望保存为UTF-8和ASCII的文件会产生差异。UTF-8字符的宽度不是2字节,而ASCII字符的宽度不是1字节吗?可能有perl、php或python模块可以处理这个问题,但我没有任何经验可以分享。抱歉,Good luck.vimdiff通过在缓冲区上指示^M来检测这些差异。