Android 端開(kāi)發(fā)雖然和Web開(kāi)發(fā)有相似之處,但在一些細(xì)節(jié)處理上還是有區(qū)別的。比如轉(zhuǎn)義字符在 Android 端的HTML代碼中需要特別注意。
<標(biāo)簽 屬性="值">內(nèi)容</標(biāo)簽>
在 Android端,如果你需要在HTML代碼中使用<、>這些特殊字符,應(yīng)該使用實(shí)體編碼,例如:
<p>Hello, <World>!</p>
上面的代碼中,<代表<,>代表>。這樣就可以將特殊字符正確地顯示在HTML中了。
還需要注意的是,在Android端,使用Html.fromHtml()方法將HTML代碼轉(zhuǎn)化為Spannable時(shí),需要使用一個(gè)標(biāo)志位參數(shù),這個(gè)參數(shù)是為了保證在解析過(guò)程中保留轉(zhuǎn)義字符和HTML標(biāo)簽,如下所示:
Spanned spanned = Html.fromHtml(htmlString,Html.FROM_HTML_MODE_LEGACY);
其中Html.FROM_HTML_MODE_LEGACY就是指保留這些特殊字符和HTML標(biāo)簽的模式,否則將會(huì)被過(guò)濾掉。
因此,當(dāng)我們?cè)贏ndroid端編寫(xiě)HTML代碼時(shí),不僅要注重標(biāo)簽和屬性的正確使用,也需要保證特殊字符的轉(zhuǎn)義和解析過(guò)程中的保留,才能使HTML代碼得到正確的顯示和解析。