Tôi có địa chỉ email được mã hóa với các thực thể ký tự HTML. Có bất kỳ điều gì trong .NET có thể chuyển đổi chúng thành các chuỗi đơn giản không?Làm cách nào để giải mã các ký tự HTML trong C#?
Trả lời
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
.
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ự <
và >
cho người dùng, hãy sử dụng Server.HtmlEncode
.
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 :) –
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.
Đồ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 –
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.
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#
Đó 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
Đ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
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
.
Để giải mã HTML hãy xem mã dưới đây
string s = "Svendborg Værft A/S";
string a = HttpUtility.HtmlDecode(s).ToString();
Response.Write(a);
Output là như
Svendborg Værft A/S
'ToString()' là thừa vì HtmlDecode trả về một chuỗi – Justin
- 1. Làm cách nào để mã hóa các mã ký tự Unicode trong chuỗi ký tự PowerShell?
- 2. Giải mã các ký tự thoát HTML trở lại chuỗi bình thường trong C#
- 3. Giải mã ký tự đặc biệt trong C#
- 4. Làm cách nào để giải mã các thực thể HTML trong C++?
- 5. Giải mã các ký tự thoát trong URL
- 6. Cách giải mã ký tự Unicode trong chuỗi
- 7. Làm cách nào để xóa các ký tự được mã hóa HTML khỏi chuỗi?
- 8. Làm cách nào để mã hóa/giải mã các thực thể HTML trong Ruby?
- 9. Tôi làm cách nào để giải mã các thực thể HTML?
- 10. Làm cách nào để bao gồm ký tự "nội dung" được mã hóa HTML trong CSS?
- 11. Giải mã mã hóa HTML C# MVC4
- 12. Cách giải mã các thực thể HTML số trong PHP
- 13. Mã hóa ký tự và chuỗi ký tự trong C++
- 14. Làm cách nào để thoát khỏi các ký tự HTML đặc biệt trong JSP?
- 15. Làm cách nào để tìm loại ký tự hai chiều của ký tự Unicode trong C#?
- 16. Mã ký tự HTML 8203 là gì?
- 17. Giải mã & # 55357; đến ký tự thực
- 18. Làm cách nào để sử dụng Python để thay thế các ký tự thoát HTML?
- 19. Chuyển đổi các ký tự đặc biệt thành mã ký tự HTML
- 20. Làm thế nào để chuyển đổi các ký tự đặc biệt thành các thực thể html?
- 21. Làm cách nào để đếm các ký tự trong Perl?
- 22. làm thế nào để giải mã mã html bằng cách sử dụng Java?
- 23. Làm thế nào để giải mã HTML unicode bằng JavaScript?
- 24. Làm cách nào để giải mã chuỗi bằng thuật toán AES trong C#?
- 25. Làm cách nào để hiển thị các ký tự mã ASCII mở rộng trong Perl?
- 26. Làm cách nào để tôi so sánh các ký tự trong C++?
- 27. Làm cách nào để tránh ký tự \ xc2 hoặc trong đoạn mã của tôi?
- 28. Làm thế nào để hiển thị các ký tự Unicode trong IE sử dụng HTML
- 29. Giải mã các thực thể HTML trong android
- 30. C#, UTF-8 và mã hóa các ký tự
Đó 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
Đó là phiên bản .NET 2.0 của System.Web –
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