4 votos

Quebrada caracteres en nombres de archivos en algunos directorios

Tenemos un servidor web corriendo CentOS 5.8 que utiliza SVN para el control de versiones. Cuando se intenta cambiar a la última revisión, tenemos un error acerca de los nombres de archivo de los archivos en un directorio de carga:

svn: Error converting 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)

Investigando, hemos notado que hay algunos archivos que se había roto los nombres de archivo:

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

Para obtener la actualización se completó rápidamente, simplemente mved los archivos en su directorio home. Sorprendentemente, sus nombres se veía bien en su nueva ubicación:

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

Después de la actualización que nos mudamos de vuelta a donde estaban ellos y sus nombres fueron roto de nuevo. Lo que podría causar esto y cómo podemos solucionarlo? La configuración regional del sistema se establece en LANG=en_US.UTF-8.

1voto

Alex North-Keys Puntos 318

El x54 x79 es el "Ty" en ASCII, el cual es válido ISO-8859-1 y UTF-8, pero la xF6 x6B x69 x72 es "ökir", en ISO-8859-1 de la codificación y NO válidas de UTF-8. En que se traduce ambas maneras, en algún lugar entre espeluznante y genial. Lo que trae a colación la cuestión de si el sistema de archivos involucrados.

La mayoría de los sistemas de ficheros Unix son bastante agnóstico acerca de los conjuntos de caracteres - que acaba de hacer bytes. Usted puede comprobar ambos sistemas de archivos, si hay dos (uno, puede no ser ext3), los detalles acerca de cómo está montado, y a indagar en si la ruta de acceso a través de ~/public_html/adm/correo electrónico/upload/ va a través de NFS o algo parecido que podría ser capas de otro sistema de archivos de conjunto de caracteres sobre el subyacente de una Samba sería una cosa muy interesante para encontrar allí, ya que se ha explícito el conjunto de caracteres de opciones.

Por supuesto, la comprobación para ver si LC_CTYPE se establece por extraño que es una buena idea también:

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

Tal vez LC_CTYPE no se ha establecido en el SVN proceso? No duro a suceder, cuando se ejecuta indirectamente por un servidor web, un trabajo por lotes, etc.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: