Khi xuất chuỗi trong HTML, người ta phải thoát khỏi các ký tự đặc biệt dưới dạng thực thể HTML ("& <>" v.v.) vì lý do dễ hiểu.Khi thoát chuỗi bằng các thực thể HTML, tôi có thể bỏ qua các ký tự mã hóa trên Unicode 127 một cách an toàn nếu tôi sử dụng UTF-8 không?
Tôi đã kiểm tra hai triển khai Java này: org.apache.commons.lang.StringEscapeUtils.escapeHtml (String) net.htmlparser.jericho.CharacterReference.encode (CharSequence)
Cả hai thoát khỏi tất cả các nhân vật ở trên mã Unicode điểm 127 (0x7F), có hiệu quả tất cả các ký tự không phải tiếng Anh.
Hành vi này là tốt, nhưng các chuỗi nó tạo ra không phải là con người có thể đọc được khi các ký tự không phải là tiếng Anh (ví dụ: bằng tiếng Do Thái hoặc tiếng Ả Rập). Tôi đã thấy rằng khi các ký tự trên Unicode 127 không được thoát như thế này, chúng vẫn hiển thị chính xác trong các trình duyệt - tôi tin rằng điều này là do trang html được mã hoá UTF-8 và do đó các ký tự này dễ hiểu đối với trình duyệt.
Câu hỏi của tôi: Tôi có thể tắt an toàn các ký tự Unicode trên điểm mã 127 khi thoát khỏi thực thể HTML, miễn là trang web của tôi được mã hóa UTF-8 không?