Simplemente no puedo recordar eso. Entonces, ¿cuál es la forma correcta de terminar correctamente las líneas ASCII anticuadas?
Simplemente no puedo recordar eso. Entonces, ¿cuál es la forma correcta de terminar correctamente las líneas ASCII anticuadas?
Respuestas:
Usaría la palabra ' r etur n ' para recordar, la r viene antes que la n.
\n\r
y \r\n
es el mismo, ¿no tienen el mismo efecto? ¿Puede usted decir la diferencia?
Si está usando C #, debe usarlo Environment.NewLine
, que en consecuencia para MSDN es:
Una cadena que contiene "\ r \ n" para plataformas que no son Unix, o una cadena que contiene "\ n" para plataformas Unix.
Environment.NewLine
está bien. Sin embargo, si está escribiendo cosas en un formato bien definido, el formato también puede definir la nueva línea. Por ejemplo, el protocolo HTTP establece que debe usarlo \r\n
como terminador de línea para encabezados, etc., independientemente de la plataforma.
La nueva línea depende de su sistema operativo:
DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
Más detalles aquí: https://ccrma.stanford.edu/~craig/utility/flip/
En caso de duda, use cualquier visor / editor hexadecimal gratuito para ver cómo un archivo codifica su nueva línea.
Para mí, yo uso siguiente guía para ayuda a recordar: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n correo de alimentación
0D0A
de memoria, pero aún confunde el \r
y \n
.
La secuencia es CR (retorno de carro) - LF (avance de línea). ¿Recuerdas las impresoras matriciales? Exactamente. Entonces, el orden correcto es \ r \ n
En cualquier idioma .NET, Environment.NewLine
sería preferible.
Tenga cuidado al hacer esto manualmente.
De hecho, aconsejaría no hacer esto en absoluto.
En realidad, estamos hablando de la secuencia de terminación de línea LTS que es específica de la plataforma.
Si abre un archivo en modo de texto (es decir, no binario), las secuencias convertirán el "\ n" en el LTS correcto para su plataforma. Luego convierta el LTS nuevamente a "\ n" cuando lea el archivo.
Como resultado, si imprime "\ r \ n" en un archivo de Windows, obtendrá la secuencia "\ r \ r \ n" en el archivo físico (eche un vistazo con un editor hexadecimal).
Por supuesto, esto es un verdadero dolor cuando se trata de transferir archivos entre plataformas.
Ahora, si está escribiendo en una secuencia de red, lo haría manualmente (como la mayoría de los protocolos de red lo llaman específicamente). Pero me aseguraría de que la transmisión no esté interpretando nada (por lo que el modo binario era apropiado).
\r\n
para Windows funcionará bien.
\n
funciona bien en Windows, incluida la última versión de Notepad.
De Wikipedia (puede leer cuál es el correcto para su sistema operativo en ese artículo):
Los sistemas basados en ASCII o un conjunto de caracteres compatible usan LF (avance de línea, '\ n', 0x0A, 10 en decimal) o CR (retorno de carro, '\ r', 0x0D, 13 en decimal) individualmente, o CR seguido de LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Es extraño decir que lo recuerdo porque es lo contrario de la máquina de escribir que utilicé.
Bueno, si era normal no tenía necesidad de recordarlo ...:-)
En la máquina de escribir, cuando termina de digitar la línea, utiliza la palanca de retorno del carro , que antes hace rodar el tambor, la nueva línea y luego le permite operar manualmente el retorno del carro .
Puede escuchar de este disco de freesound.org el sonido de la alimentación de papel al principio, y alrededor de -1: 03 segundos desde el final, después de la advertencia de campana para el final del sonido de línea del tambor que rueda y después el del retorno de carro.