Mantén la atención ya que en esta noticia hallarás la solución que buscas.Este artículo ha sido probado por nuestros especialistas para garantizar la calidad y veracidad de nuestro contenido.
Solución:
Observaciones preliminares:
-
sftp deber use UTF-8 como codificación de nombre de archivo (por ejemplo, consulte aquí como referencia). Sin embargo, hay clientes y servidores que no cumplen con ese requisito y violan las especificaciones, lo que puede ser la causa de su problema.
-
Tu escribiste: “Tenga en cuenta que he comentado: AcceptEnv LANG LC_*. Según aquí, esto significa que el servidor no permitirá que el cliente pase variables de entorno locales”.
Puede haber un malentendido con respecto a cómo funciona esto y para qué sirve. Cada vez que dos máquinas se comunican, deben usar los mismos formatos de datos. Por ejemplo, suponga que VisualCron coloca nombres de archivo codificados como ISO 8859-1 en el flujo de bytes que envía al servidor Ubuntu, pero obliga al servidor Ubuntu a interpretar el flujo de bytes entrante (nombre de archivo) como si estuviera codificado en UTF- 8. Eso no lo hará resolver problemas, pero causa a ellos.
Habiendo dicho ésto:
Primero intentaría averiguar dónde surge exactamente el problema. Supongo firmemente que tiene acceso SSH o incluso acceso físico (teclado) al servidor Ubuntu. Entonces
-
Compruebe si la configuración regional
en_US.UTF-8
está instalado en el servidor Ubuntu en absoluto. Tenga en cuenta que simplemente configurando elLC_
yLANG
variables de entorno hace no instalar un local.En su lugar, instalaría una configuración regional durante la instalación del sistema operativo o mediante algo como
dpkg-reconfigure locales
(en Debian, no conozco Ubuntu). -
Si utiliza SSH, asegúrese de que el software de su terminal SSH (p. ej., Putty) utilice la misma codificación que el servidor.
-
Luego, el paso más crucial: usar su terminal SSH, a mano cree un archivo con un nombre problemático en el directorio respectivo para que el cliente sftp en su computadora portátil con Windows pueda verlo.
Por ejemplo, volviendo a su pregunta, podría crear un archivo con el nombre
Liège.txt
en tus/tickets
directorio (touch /tickets/Liège.txt
). Nuevamente, usando su terminal SSH, verifique cuidadosamente que el nombre del archivo aparezca correctamente cuando permita que Ubuntu enumere los archivos en ese directorio (ls -al /tickets
). -
Ahora use el cliente sftp en su computadora portátil con Windows y verifique si descarga correctamente ese archivo recién creado.
Si esto funciona, significa que su problema surge cuando VisualCron transfiere los archivos al servidor de Ubuntu. Si no funciona, el problema está entre su computadora portátil con Windows y el servidor de Ubuntu.
En ambos casos, existen herramientas que pueden ayudarte a analizar la situación.
Por ejemplo, puede obtener información jugando con convmv, que puede convertir nombres de archivo de una codificación a otra. En particular, podría convertir la codificación de sus nombres de archivo de UTF-8 a UTF-8. Cuando haga eso y esté seguro de que el nombre del archivo ya está codificado en UTF-8, no debe cambiar durante esa conversión.
También es posible que desee echar un vistazo a chardet, que es una biblioteca de Python que intenta adivinar la codificación de, por ejemplo, los nombres de archivo. No soy un chico de Python, así que no puedo ayudarte con el código fuente. De acuerdo con la respuesta aceptada a esta pregunta, tendría una línea como chardet.detect(os.popen("ls yourfilename.txt").read())
en su secuencia de comandos de Python, que generará la codificación más probable junto con una calificación de confianza.
Para resumir:
-
Asegúrese de que los nombres de los archivos en su servidor Ubuntu De Verdad están codificados en UTF-8, siguiendo los pasos que se muestran arriba y usando las herramientas mencionadas anteriormente.
-
Una vez que esté absolutamente seguro de que los nombres de archivo en su servidor Ubuntu están codificados en UTF-8, verifique si su cliente sftp en su computadora portátil puede descargarlos. Si no, pruebe con otros clientes hasta que funcione.
-
Si descubrió que no todos los nombres de archivo en el servidor Ubuntu están codificados en UTF-8, ajuste la configuración en VisualCron en consecuencia. No conozco VisualCron y, por lo tanto, no puedo ayudarlo con eso.
Te mostramos reseñas y valoraciones
Si para ti ha sido de utilidad nuestro artículo, sería de mucha ayuda si lo compartieras con el resto entusiastas de la programación así contrubuyes a dar difusión a esta información.