2009-07-27 69 views
34

trong C# Tôi có một chuỗi mà tôi đang viết cho đầu ra của phản hồi. Sau khi tôi lưu tài liệu này và mở nó trong Notepad ++ hoặc WordPad tôi có được ngắt dòng được định dạng độc đáo, khi tôi mở tài liệu này bằng notepad cửa sổ cũ, tôi nhận được một chuỗi văn bản dài với [] phá vỡ nên được.C# Mã hóa chuỗi văn bản có ngắt dòng

Có ai có kinh nghiệm với điều này không?

Cảm ơn

Jim

Trả lời

72

Có - nó có nghĩa là bạn đang sử dụng \n như dòng phá vỡ thay vì \r\n. Notepad chỉ hiểu cái sau.

(Lưu ý rằng Environment.NewLine gợi ý bởi những người khác là tốt nếu bạn muốn mặc định nền tảng - nhưng nếu bạn đang phục vụ từ Mono và chắc chắn muốn \r\n, bạn nên xác định nó một cách rõ ràng.)

+0

Cảm ơn Jon. "phục vụ từ Mono"? Cái gì thế? – jim

+1

Như trong "Triển khai máy chủ sử dụng Mono trên Linux và yêu cầu máy chủ đó phân phát dữ liệu". Mono là triển khai đa nền tảng .NET - xem http://mono-project.com –

7

Hãy thử điều này:

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

nếu chuỗi đầu vào chứa cả \ n và \ r \ n hoạt động như vậy sẽ phá vỡ nó – abatishchev

+0

"Tôi nhận được một chuỗi văn bản dài với [] biểu tượng tìm kiếm hình vuông, nơi các ngắt dòng nên được. " Có vẻ như không phải như vậy. – Guillaume

+5

@Guillaume: Nó không phải là trường hợp * lần này *, nhưng không có lý do tại sao một tập tin không thể chứa hai hoặc nhiều loại khác nhau của dòng phân cách - Tôi nhìn thấy nó trong các trang web tất cả các thời gian. Khi bạn đang chuẩn hóa các dòng mới, bạn nên luôn khớp với cả ba loại: 'Regex.Replace (@" \ n | \ r \ n? "," \ R \ n ")' –

0

Hãy thử \ n \ n, nó sẽ hoạt động! :)

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); 
} 
Các vấn đề liên quan