HTML'de bir dize çıktığında, anlaşılır nedenlerden ötürü HTML karakterleri ("& <>" vb.) Gibi özel karakterlerden kaçınılmalıdır.HTML varlıklarına sahip bir dizeden kaçarken, UTF-8 kullanırsam Unicode 127'nin üzerindeki kodlama kodlarını güvenli bir şekilde atlayabilir miyim?
bu iki Java uygulamaları inceledik: org.apache.commons.lang.StringEscapeUtils.escapeHtml (String) net.htmlparser.jericho.CharacterReference.encode (CharSequence)
Hem tüm karakterleri kaçış İngilizce dışındaki tüm karakterler etkili olan Unicode kod noktası 127 (0x7F).
Bu davranış iyi, ancak ürettiği dizeler, karakterler ingilizce olmadığında (örneğin, İbranice veya Arapça) insanca okunabilir değildir. Unicode 127'nin yukarısındaki karakterlerin bu şekilde kaçmadığı durumlarda, tarayıcılarda hala doğru bir şekilde oluşturduklarını gördüm. Bunun nedeni, html sayfasının UTF-8 kodlu olması ve dolayısıyla bu karakterlerin tarayıcıya göre anlaşılabilir olmasıdır.
Soruma Yanıt: Web sayfamın UTF-8 kodlanmış olması koşuluyla, HTML varlıklarından kaçarken kod noktası 127'nin üstündeki Unicode karakterlerinden kaçmayı güvenli bir şekilde devre dışı bırakabilir miyim?