Cairacteres quebrados em nomes de files apenas em alguns diretórios

Temos um server web executando o CentOS 5.8 que usa o SVN paira version control. Ao tentair mudair paira a revisão mais recente, obtivemos um erro sobre os nomes de files dos files em um diretório de upload:

svn: Error conviewting entry in directory 'adm/emails/upload' to UTF-8 svn: Valid UTF-8 data (hex: 54 79) followed by invalid UTF-8 sequence (hex: f6 6b 69 72) 

Ao investigair, percebemos que havia alguns files que tinham nomes de files quebrados:

 $ ls ~/public_html/adm/emails/upload/ Ty?el?m?trendit.csv Ty?kirja1.csv 

Paira obter a atualização concluída rapidamente, simplesmente mv os files paira o nosso diretório inicial. Surpreendentemente, seus nomes de files paireciam bem em sua nova localization:

 $ ls ~/ Työelämätrendit.csv Työkirja1.csv 

Após a atualização, nós os transferimos paira onde estavam e seus nomes de files foram quebrados novamente. O que poderia causair isso e como podemos corrigi-lo? A localidade do sistema é definida como LANG=en_US.UTF-8 .

O x54 x79 é o "Ty" em ASCII, que é válido ISO-8859-1 e UTF-8, mas o xF6 x6B x69 x72 é "ökir", na encoding ISO-8859-1 e UTF-8 não válido. Que está sendo traduzido em ambos os sentidos, em algum lugair entre assustador e shiny. O que traz a questão de saber se o sistema de files está envolvido.

A maioria dos filesystems do Unix são bastante agnósticos sobre os conjuntos de cairacteres – eles apenas fazem bytes. Você pode viewificair ambos os filesystems, se houview dois (um pode não ser ext3), os detalhes sobre como eles estão montados e cavair se o path através de ~ / public_html / adm / email / upload / está passando pelo NFS ou algo assim como se estivesse em camadas outro conjunto de cairacteres do sistema de files sobre o subjacente – o Samba seria uma coisa realmente interessante paira encontrair lá, pois ele possui opções de chairset explícitas.

Clairo, viewificando se LC_CTYPE está configurado estranhamente também é uma boa idéia:

 $ touch Työelämätrendit.csv $ ls T* Työelämätrendit.csv $ LC_CTYPE=C ls T* Ty??el??m??trendit.csv $ 

Talvez LC_CTYPE não tenha sido configurado no process SVN? Não é difícil ter acontecido, quando está sendo executado indiretamente por um server web, trabalho por lotes, etc.