本文介紹了如何使用Java轉(zhuǎn)換特殊字符?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我有如下字符串:
Avery?? Laser & Inkjet Self-Adhesive
我需要將它們轉(zhuǎn)換為
Avery Laser & Inkjet Self-Adhesive.
即刪除特殊字符并將html特殊字符轉(zhuǎn)換為常規(guī)字符。
推薦答案
Avery?? Laser & Inkjet Self-Adhesive
首先使用StringEscapeUtils#unescapeHtml4()
(或#unescapeXml()
,取決于原始格式)將&
取消轉(zhuǎn)義為&
。然后將String#replaceAll()
與[^x20-x7e]
一起使用,以刪除不在printable ASCII range中的字符。
摘要:
String clean = StringEscapeUtils.unescapeHtml4(dirty).replaceAll("[^\x20-\x7e]", "");
..這會(huì)產(chǎn)生
Avery Laser & Inkjet Self-Adhesive
(如您的示例所示,沒(méi)有尾隨的圓點(diǎn),但在原始文件中沒(méi)有;))
也就是說(shuō),這看起來(lái)更像是對(duì)解決辦法請(qǐng)求,而不是對(duì)解決方案的請(qǐng)求。如果您詳細(xì)說(shuō)明功能需求和/或此字符串的來(lái)源,我們也許能夠提供正確的解決方案。??
看起來(lái)是由使用錯(cuò)誤的編碼讀入字符串造成的,而&
看起來(lái)是由使用基于文本的解析器而不是成熟的HTML解析器讀入字符串引起的。
這篇關(guān)于如何使用Java轉(zhuǎn)換特殊字符?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,