2013-07-03 27 views
0

有一個字符串:Character\5C&\22\3C\3E'我想要unescape。從apache轉到StringEscapeUtil

有該代碼:

package escaping; 

import org.apache.commons.lang.StringEscapeUtils; 

public class UnEscapingDemo { 

    public static void main(String[] args) { 

     String str = StringEscapeUtils.unescapeHtml("Character\\5C&\\22\\3C\\3E'"); 

     System.out.println(str); 

    } 

} 

但最終我沒有期待的結果。我有什麼,我已經把相同的。(而不轉換它)」

爲什麼

-

編輯:?

believe說, 「3E」 在這裏代表「>」。例如

所以,我期待字符串爲:Character\&"<>'

+0

請澄清:什麼是你得到的結果,什麼是你期待的結果? –

+0

你沒有加入Html,這就是原因。但我不知道你在幹什麼。 –

+0

這是真的HTML你期望在這裏逃脫嗎? – fge

回答

1

ÿ什麼ou提及的不是HTML而是URI編碼。在HTML中,<將是&lt;>將是&gt;

你應該看看這個thread,並閱讀Tim Cooper和Draemon的帖子。

+1

這甚至不是URI編碼。反斜槓在URI中不合法。 – fge

+0

我的意思是,對於問題的編輯部分('我相信這裏的「3E」代表「>」') – ssssteffff

0

好了,逃避的那個奇怪的語法來自OpenLDAP的...

這個工作對我來說則:

public static void main(String[] args) throws UnsupportedEncodingException { 

     String input = "Character\\5C&\\22\\3C\\3E'"; 

     input = input.replace("\\", "%"); 

     String result = URLDecoder.decode(input, "UTF-8"); 

     System.out.println(result); 

    }