命令行重定向在输出中丢失重音

时间:2011-10-05 15:24:11

标签: svn batch-file

我想从我的svn项目中获取所有日志并将其输出到文件中。问题是,有时候这些音符是用法语写的,并且有“é”,“à”等字样。

当我使用此命令时:

svn log svn://mysvnserver/mysite/trunk

dos窗口中的输出很好。口音有。

但是当我将输出重定向到像这样的文件时

svn log svn://mysvnserver/mysite/trunk > C:\releaseNotes.txt

所有口音都丢失了,为什么?

我甚至强制文件在utf-8中,但是一旦我运行命令行,文件就会被强制回ANSI,使得重音不可读。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

首先,Subversion命令行客户端在Windows上显示和处理非ASCII字符时存在很多问题。作者认为这不是一个大问题,因为显然需要处理超过ASCII的人是一个白痴,特别是如果他们在Windows上。它有时以奇怪的方式表现出来:

S:\Joey\Wikipedia Work\Flags>svn log "Flag of Čáslav.svg"
svn: 'Flag of Cáslav.svg' is not under version control

...即使文件在存储库中。很长一段时间后,作者放弃了实际支持的非ASCII字符,而是通过剥离重音等将所有内容转换为ASCII / Latin 1来选择忽略/修复问题(请注意上例中的Č与C)侧面显示问题。我可以尝试找到那种再次关闭的错误报告,但已经有一段时间了。

编辑:使用cmd /u不起作用;重定向文件仍然只有CP1252编码。

即使我成功打开了日志窗口,我仍然试图哄骗TortoiseSVN编写这样一个文件但到目前为止没有太大成功。

Aaah,您可以做的是使用--xml选项,然后解析XML以获取所需的数据。 XML文件使用UTF-8编码,不会破坏字符。但是它更复杂,但是如果您可以使用PowerShell,那么基于XML复制正常输出应该相当容易。

答案 1 :(得分:0)

Doyou知道chcp DOS命令吗?

在svn登录bat-file

之前使用它(使用正确的字符集)