2009-07-27 8 views
34

in C# Ho una stringa scrivo per OutputStream della risposta. Dopo aver salvato questo documento e averlo aperto in Notepad ++ o WordPad ottengo delle interruzioni di riga ben formattate dove sono previste, quando apro questo documento con il normale vecchio blocco note di Windows, ottengo una lunga stringa di testo con simboli [] quadrati che sembrano la linea le pause dovrebbero essereC# che codifica per una stringa di testo con interruzioni di linea

Qualcuno ha avuto esperienza con questo?

Grazie

Jim

risposta

72

Sì - vuol dire che si sta utilizzando \n come la linea rottura invece di \r\n. Blocco note capisce solo quest'ultimo.

(Si noti che Environment.NewLine suggerito da altri va bene se si desidera che il default della piattaforma - ma se si sta servendo da mono e sicuramente vuole \r\n, è necessario specificare in modo esplicito.)

+0

Grazie Jon. "servire da Mono"? Cos'è quello? – jim

+1

Come in "Distribuzione di un server utilizzando Mono su Linux e richiesta al server di servire i dati". Mono è un'implementazione cross-platform di .NET - vedi http://mono-project.com –

7

Prova questo:

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

se stringa di input contiene sia \ n e \ r \ n tale operazione romperlo – abatishchev

+0

"Ho una stringa lungo testo tra [] simboli dall'aspetto quadrato dove dovrebbe essere la linea. " Sembra che non sia il caso. – Guillaume

+5

@Guillaume: Non è il caso * questa volta *, ma non c'è motivo per cui un file non possa contenere due o più tipi diversi di separatore di righe: lo vedo sempre nelle pagine Web. Quando si sta normalizzando a capo si dovrebbe sempre corrispondere tutti i tre tipi: 'Regex.Replace ("? \ N | \ r \ n" @ " \ r \ n")' –

0

Prova \ n \ n, funzionerà! :)

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); 
} 
Problemi correlati