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