Python SVN预提交钩子编码

Python SVN预提交钩子编码,python,svn,tortoisesvn,pre-commit-hook,svn-hooks,Python,Svn,Tortoisesvn,Pre Commit Hook,Svn Hooks,我正在使用Python脚本来实现SVN预提交钩子: svnlookPath = 'path-to-svnlook' f = subprocess.Popen([svnlookPath, 'log', sys.argv[1], '--transaction', sys.argv[2]], stdout=subprocess.PIPE).stdout commitMessage = f.read() f.close() commitMessage = commitMessage.rstrip('\

我正在使用Python脚本来实现SVN预提交钩子:

svnlookPath = 'path-to-svnlook'

f = subprocess.Popen([svnlookPath, 'log', sys.argv[1], '--transaction', sys.argv[2]], stdout=subprocess.PIPE).stdout
commitMessage = f.read()
f.close()
commitMessage = commitMessage.rstrip('\n\r')

print >> sys.stderr, 'Commit message: "' + commitMessage + '"'
sys.exit(1)
Mypre-commit.bat(服务器托管在Windows server 2008上):

在客户端,我使用陆龟vn


一切正常,除了提交消息编码。例如,如果提交消息包含俄文字母,它们将在乌龟窗口中显示为“?”(问号)。

我想说这更多的是
.bat的错误,而不是python脚本的错误,因为python具有出色的unicode支持。
也许这个问题的答案可以帮助你


问题可能是乌龟本身。试试下面的方法

svn日志


看看svn说的日志注释是什么。如果它做对了,那么可能是乌龟没有显示俄文编码。如果在没有预提交钩子的情况下提交会发生什么?显示正确吗?

请停止在标题中写入标记。在bat文件中添加“chcp 1251”或“chcp 65001”行在此处不起作用。
@python.exe path-to-py-file %1 %2