Me estoy cansando de cómo WinSCP arruina la línea.
this is line 1
this is line 2
Se convierte en
this is line 1
this is line 2
Simplemente podría usar FileZilla para FTP y Putty para SCP (creo que Putty puede manejar eso) pero, eso es bastante molesto. ¿Cómo puedo mitigar este problema?
Respuestas:
Yo diría que el comentario dejado por acidzombie24 Es el mejor consejo. Personalmente no he encontrado un mejor programa de FTP que WinSCP. Le recomiendo que cambie la configuración para transferir usando Binary, y use un editor como NP ++ en lugar del editor interno.
Aquí hay algunas capturas de pantalla:
fuente
Versión redactada de las preguntas frecuentes de WinSCP ¿Por qué los saltos de línea del archivo de texto son incorrectos después de transferir o editar el archivo?
Ver particularmente su Problemas conocidos sección.
Después de transferir o editar un archivo, puede ocurrir que los saltos de línea sean incorrectos, lo que puede manifestarse como:
Formatos de archivo de texto
Diferentes plataformas (sistemas operativos) utilizan un formato diferente de archivos de texto. Los formatos más comunes son Unix y Windows. Una diferencia principal es que se utilizan caracteres o secuencias de caracteres diferentes para indicar el final de una línea. En Unix, es el personaje LF (
\n
,0A
o 10 en decimal). En Windows, es una secuencia de dos caracteres, CR y LF (\r
+\n
,0D
+0A
o 13 + 10 en decimal).Si bien muchas aplicaciones y sistemas hoy en día pueden funcionar con ambos formatos, algunos requieren un formato específico. Al presentar un archivo en otro formato, no lo muestran correctamente, como se describe anteriormente.
Modo de transferencia de texto / ASCII
Por esta razón, los clientes y servidores de transferencia de archivos admiten texto / ASCII modo de transferencia . Al transferir un archivo en este modo, el archivo se convierte (idealmente) de un formato nativo a un sistema de origen, a un formato nativo de un sistema de destino. Por ejemplo, al cargar un archivo de texto utilizando el modo de texto de Windows al sistema Unix, los finales de línea de archivo se convierten de CR + LF a LF.
WinSCP utiliza por defecto el modo de transferencia binario para todos los archivos. Aprende a configurarlo para utilizar el modo de transferencia de texto / ASCII . También es posible que necesite configurar Formato de archivo de texto del lado del servidor correcto .
Por el contrario, cuando desea forzar a WinSCP a usar un modo binario, incluso cuando edita archivos en un editor de texto, tiene que usar un editor de texto externo (el editor interno de WinSCP no admite el formato de archivo Unix) y configurar WinSCP No forzar el modo de texto para archivos editados. . También asegúrese de que su editor de texto externo guarde el archivo en el formato que necesita (la mayoría de los editores de texto hoy en día admiten diferentes formatos de archivo de texto, no solo un formato nativo de la plataforma en la que se ejecuta el editor).
Problemas conocidos con el modo de transferencia
Depuración de conversión de archivos de texto
Si habilitar (o deshabilitar) el modo de transferencia de texto / ASCII no ayuda con el problema y su archivo transferido / editado aún es percibido incorrectamente por el sistema de destino, debe averiguar en qué paso se convirtió incorrectamente el archivo (o no lo ha hecho). se convirtió).
Para detectar los finales de línea utilizados por un archivo en Windows, use el siguiente comando en la consola de PowerShell para mostrar el volcado hexadecimal de los primeros 100 caracteres del archivo dado (
example.txt
):Para un archivo con los siguientes contenidos en formato Windows.
muestra:
Nota las dos secuencias
0d 0a
(CR + LF) que indica el formato de Windows.Para detectar los finales de línea utilizados por un archivo en el sistema Unix / Linux, use el comando:
(Las alternativas son
hexdump example.txt | head
ood example.txt | head
.)Para el mismo archivo anterior, solo en formato Unix, muestra:
Nota el caracter
0a
(LF) que indica el formato Unix.Si no tiene acceso de shell al sistema remoto, descargue el archivo con codificación binaria y use el comando PowerShell en una copia local idéntica a la del binario.
Utilice estas técnicas para detectar qué formato tienen los archivos de origen y de destino. Al editar un archivo, detecte también el formato de una copia temporal local del archivo editado como lo guarda el editor. Ver preferencias para Una ubicación de las copias temporales. .
Solicitando Apoyo
Cuando lo anterior no le ayuda a entender el problema y decide buscar más ayuda, incluya todos sus hallazgos, incluidas las copias del archivo de origen y de destino. Al editar un archivo, incluya también una copia temporal local guardada por el editor. Lo ideal es comprimir (ZIP) los archivos para evitar que su navegador altere el formato del archivo, al adjuntar los archivos para admitir la solicitud.
(Soy el autor de WinSCP)
fuente
=== Mis únicas SOLUCIONES ===
Método 1:
- Abrir archivo (con, por ejemplo, Notepad ++), abrir "Encontrar y reemplazar" ventana [Ctrl + F] (marque "Extendido" en "Modo de búsqueda"), luego escriba \ r \ n en primera linea, y \norte en el segundo y haga clic "Reemplaza todo" y guarda.
Método 2:
en Preferencias & gt; Transer & gt; Predeterminado " escoger " Automático (Modo de transferencia) ";
-Entonces en " Texto "ventana, establezca dichas condiciones (pero no las he probado bien):
por lo tanto, ahora su problema puede ser solucionado. muchas personas tienen este problema, porque WINSCP elimina las nuevas líneas de forma predeterminada (en algunos casos).
fuente
No más linebreaks dobles aquí. Mi solución fue desactivar el "Modo de transferencia de texto forzado para archivos en un editor externo" en las preferencias del editor.
fuente