2009-07-27 10 views
34

en C# Tengo una cadena que estoy escribiendo en la salida de la respuesta. Después de guardar este documento y abrirlo en Notepad ++ o WordPad obtengo unos saltos de línea muy formateados, cuando abro este documento con el antiguo bloc de notas de Windows, obtengo una cadena de texto larga con símbolos cuadrados de [] donde la línea los descansos deben serC# Codificación de una cadena de texto con saltos de línea

¿Alguien ha tenido alguna experiencia con esto?

Gracias

Jim

Respuesta

72

Sí - que significa que está utilizando \n como el salto de línea en lugar de \r\n. Notepad solo entiende esto último.

(Tenga en cuenta que Environment.NewLine sugerido por otros está bien si desea que el predeterminado de la plataforma - pero si usted está sirviendo de Mono y definitivamente quiere \r\n, debe especificar explícitamente.)

+0

Gracias Jon. "sirviendo desde Mono"? ¿Que es eso? – jim

+1

Como en "Despliegue de un servidor usando Mono en Linux, y pidiendo que el servidor sirva los datos". Mono es una implementación multiplataforma de .NET - vea http://mono-project.com –

7

Prueba esto:

string myStr = ... 
myStr = myStr.Replace("\n", Environment.NewLine) 
+4

si la cadena de entrada contiene tanto \ n como \ r \ n tal operación lo romperá – abatishchev

+0

"Recibo una cadena de texto larga con [] símbolos de aspecto cuadrado donde debería estar la línea ". Parece que no es el caso. – Guillaume

+5

@Guillaume: No es el caso * esta vez *, pero no hay ninguna razón por la cual un archivo no puede contener dos o más tipos diferentes de separador de línea; lo veo en páginas web todo el tiempo. Cuando esté normalizando nuevas líneas, siempre debe hacer coincidir los tres tipos: 'Regex.Replace (@" \ n | \ r \ n? "," \ R \ n ")' –

0

Probar \ n \ n, ¡funcionará! :)

public async Task AjudaAsync(IDialogContext context, LuisResult result){ 
await context.PostAsync("How can I help you? \n\n 1.To Schedule \n\n 2.Consult"); 
context.Wait(MessageReceived); 
} 
Cuestiones relacionadas