在我的Windows框中,我尝试使用命令svn diff > my_patch.diff
创建Subversion补丁。生成的文件使用UTF-16而不是UTF-8或ASCII进行编码,因此当我尝试使用patch
(来自GnuWin32)来应用补丁时,它不起作用。
我能够通过在记事本中打开它并将其保存为所需的格式,将补丁文件转换为UTF8,然后patch
处理好了。但是,有没有办法让svn diff
在Windows上生成UTF8?
更新:正如我的回答所示,事实证明问题与Subversion,diff
或patch
无关。 PowerShell是非常有用的将输出转换为Unicode。我将问题保留原样,以便有类似问题的人可能偶然发现它。
答案 0 :(得分:14)
经过多次抓挠并尝试使用不同的diff
实用程序后,我想出了这个:
我在PowerShell命令窗口中运行svn diff
。 PowerShell的输出重定向运算符将输出转换为Unicode 。
如果我在svn diff > my_patch.diff
shell中运行cmd.exe
,那么一切正常。
要在PowerShell中使用此功能,必须使用如下命令:
svn diff | out-file -encoding ascii my_patch.diff
我确信微软有人认为这种行为真的很棒。