我有這樣" <person name="peter" ><\person>"
壞編碼XML
URL編碼
URLEncoder.encode(person.toString(),"UTF-8");
一個字符串,但編碼是不好的,因爲對空間做+
insted的的%20
和=
他給你們可以其他值幫我?
我有這樣" <person name="peter" ><\person>"
壞編碼XML
URL編碼
URLEncoder.encode(person.toString(),"UTF-8");
一個字符串,但編碼是不好的,因爲對空間做+
insted的的%20
和=
他給你們可以其他值幫我?
這與javaDoc中的URLEncoder
完全相同。空格轉換爲+
,而=
爲「不安全」,因此編碼爲%3D
。
如果你需要一個%20
代替+
,只是做一些後期處理:
URLEncoder.encode(person.toString(),"UTF-8").replace("+", "%20");
感謝幫助我只是想知道是否有其他類型的編碼 – PedroAGSantos 2011-04-19 14:52:36
考慮您的評論我想你想decode WebService的答案。
// the answer you receive from the webservice
string webserviceResponse = "%3Cperson+name%3D%22peter%22%3E%3C%2Fperson%3E";
// turn into a "good" Xml string
string person = URLDecoder.decode(webserviceResponse, "UTF-8");
會給你
<person name="peter"></person>
爲person
值。
沒有web服務這是否需要編碼,但即使是簡單的'@'轉換爲'%40' – PedroAGSantos 2011-04-19 15:03:17
@subspider我不建議做web服務需要編碼。從上面的評論中,我假設你實際上想解碼你從這個外部web服務收到的答案。 – Filburt 2011-04-19 15:22:37
@subspider轉換特殊字符是URLEncoding的目的。 – Filburt 2011-04-19 15:35:36
你確定它不是結束標籤嗎?應該是「」 – Blazes 2011-04-19 14:36:51
究竟是什麼問題?這是一個正確的'application/x-www-form-urlencoded'類型編碼(參見http://en.wikipedia.org/wiki/Percent-encoding)。 – axtavt 2011-04-19 14:37:57
你爲什麼要對URL進行編碼?你知道你在做什麼嗎? – Ingo 2011-04-19 14:37:58