Android có hai cách khác nhau để thoát khỏi/mã hóa HTML nhân vật/thực thể trong Strings:Sự khác nhau giữa Html.escapeHtml và TextUtils.htmlEncode của Android là gì? Khi nào tôi nên sử dụng cái này hay cái kia?
Html.escapeHtml(String)
, bổ sung trong API 16 (Android 4.1). Các tài liệu nói:Trả về một biểu diễn thoát HTML của văn bản thuần nhất định.
TextUtils.htmlEncode(String)
Đối với cái này, các tài liệu nói:Html mã hóa chuỗi.
Đọc các tài liệu, cả hai đều có vẻ làm được khá nhiều điều tương tự, nhưng, khi kiểm tra họ, tôi nhận được một số (với tôi) đầu ra khá bí ẩn.
Ví dụ: Với đầu vào: <p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
Html.escapeHtml
cho:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
Trong khi
TextUtils.htmlEncode
cho:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
Vì vậy, dường như thoát thứ hai/mã hóa các trích dẫn ("), nhưng đầu tiên không, mặc dù đầu tiên mã hóa biểu tượng Euro, nhưng thứ hai thì không. Tôi bối rối.
Vậy sự khác nhau giữa hai phương pháp này là gì? Mỗi ký tự nào thoát/mã hóa? Sự khác biệt giữa mã hóa và thoát là gì ở đây? Khi nào tôi nên sử dụng cái này hay cái kia (hoặc tôi nên, thở hổn hển, sử dụng chúng cùng nhau?)?
Xin cảm ơn, đặc biệt là để giải thích về mọi thứ khi nào nên sử dụng cái gì và tại sao, đó là điều tôi không chắc chắn. +1. – JonasCz
Cảm ơn bạn đã tham khảo và giải thích –