2008-09-23 27 views

Trả lời

531

Bạn có thể sử dụng HttpUtility.HtmlDecode

Nếu bạn đang sử dụng .NET 4.0 + bạn cũng có thể sử dụng WebUtility.HtmlDecode mà không đòi hỏi một tài liệu tham khảo lắp ráp thêm như nó có sẵn trong không gian tên System.Net.

+1

Đó là nghĩa vụ phải được trong System.Web, nhưng nó không phải là. Tôi đã không chạm vào C# để biết thêm rằng một năm, nếu tôi nhận được một chút thất vọng hơn với điều này tôi sẽ chuyển đổi chúng bằng tay. – Vasil

+1

Đó là phiên bản .NET 2.0 của System.Web –

+0

Tôi đang sử dụng chính xác 2.0, nhưng tôi đang viết một ứng dụng giao diện điều khiển. – Vasil

6

Sử dụng Server.HtmlDecode để giải mã các thực thể HTML. Nếu bạn muốn thoát HTML, nghĩa là hiển thị ký tự <> cho người dùng, hãy sử dụng Server.HtmlEncode.

+4

Có thể không có một bối cảnh máy chủ (tức là khi chạy trường hợp thử nghiệm và các loại tương tự) tôi đã đến đây bẫy trước :) –

15

Nếu không có ngữ cảnh Máy chủ (nghĩa là bạn đang ngoại tuyến đang chạy), bạn có thể sử dụng HttpUtility. HtmlDecode.

+1

Đồng ý, đó là lý do tại sao tôi sử dụng HttpUtility, rơi vào cùng một cái bẫy = P –

41

Vì @CQ cho biết, bạn cần sử dụng HttpUtility.HtmlDecode, nhưng không có sẵn trong dự án không phải ASP .NET theo mặc định.

Đối với ứng dụng không phải ASP .NET, bạn cần thêm tham chiếu đến System.Web.dll. Nhấp chuột phải vào dự án của bạn trong Solution Explorer, chọn "Thêm tham chiếu", sau đó duyệt danh sách cho System.Web.dll.

Bây giờ tham chiếu được thêm vào, bạn sẽ có thể truy cập phương thức bằng cách sử dụng tên đủ điều kiện System.Web.HttpUtility.HtmlDecode hoặc chèn tuyên bố using cho System.Web để giúp mọi thứ trở nên dễ dàng hơn.

170

On Net 4.0:

System.Net.WebUtility.HtmlDecode() 

Không cần phải bao gồm lắp ráp cho một dự án C#

+5

Đó là giải pháp tốt hơn vì HttpUtility không giải mã "'" biểu tượng .. Tôi không biết tại sao .. – RredCat

+0

Điều này là cần thiết trong việc phát triển cho Windows phổ quát nền tảng. – matthewsheets

4

Nó cũng đáng nói đến là nếu bạn đang sử dụng HtmlAgilityPack như tôi là, bạn nên sử dụng HtmlAgilityPack.HtmlEntity.DeEntitize(). Phải mất một string và trả về một string.

1

Để giải mã HTML hãy xem mã dưới đây

string s = "Svendborg V&#230;rft A/S"; 
string a = HttpUtility.HtmlDecode(s).ToString(); 
Response.Write(a); 

Output là như

Svendborg Værft A/S 
+0

'ToString()' là thừa vì HtmlDecode trả về một chuỗi – Justin

Các vấn đề liên quan