linux - SVN 错误 : Can't convert string from native encoding to 'UTF-8'

标签 linux svn version-control

我有一个提交后 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 时,才会出现上述错误。

问题:

  1. 为什么 SVN 会尝试更改文件的编码?
  2. 是否允许文件名包含 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/

相关文章:

c - Unix 域 SOCK_DGRAM 和 SOCK_SEQPACKET 之间的区别?

python - 编译biopython1.65报错: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

svn - 始终使用 SVN 提交同一个文件

git - 如何仅 stash 一些未提交的更改?

version-control - Perforce - 仅适用于专家?

version-control - 使用 mercurial 为什么我会在不提交的情况下想要 merge ?

android - ANDROID 可以访问或使用由 Linux 中的 GPSd 托管的 IP GPS

python - 如何按数字对 linux 中的文件进行排序?

svn - 哪个用户应该在 Jenkins 构建作业中从 SVN checkout 代码?

windows - 对于以前从未使用过 subversion 的人来说,最好的 subversion GUI 是什么?