我有一个提交后 Hook 脚本,当提交到存储库时,它会执行工作副本的 SVN 更新。
当用户使用 TortoiseSVN 从他们的 Windows 机器提交到存储库时,他们会收到以下错误:
post-commit hook failed (exit code 1) with output:
svn: Error converting entry in directory '/home/websites/devel/website/guides/Images' to UTF-8
svn: Can't convert string from native encoding to 'UTF-8':
svn: Teneriffa-S?\195?\188d.jpg
上面有问题的文件是:Teneriffa-Süd.jpg
注意重音的 u。这是因为该网站是德语网站,并且文件是用德语拼写的。
在 Linux 命令行上对工作副本执行更新时,不会遇到任何错误。只有在 Windows SVN 客户端通过提交执行 post-commit Hook 时,才会出现上述错误。
问题:
- 为什么 SVN 会尝试更改文件的编码?
- 是否允许文件名包含 Windows 标准 ASCII 字符之外的字符?
更新:
事实证明,当我从 Windows 机器(通过 Samba)查看文件名时,相关文件的文件名正确显示为 Teneriffa-Süd.jpg
但当我从 Linux 服务器查看文件名时(使用 SSH和腻子)文件所在的位置我得到 Teneriffa-Süd.jpg
最佳答案
又一个例子:
$ svn update
svn: Error converting entry in directory '.' to UTF-8
svn: Can't convert string from native encoding to 'UTF-8':
$ export LC_CTYPE=en_US.UTF-8
$ svn update
(......现在一切都很好)
关于linux - SVN 错误 : Can't convert string from native encoding to 'UTF-8' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116718/