2016-01-15 22 views
0

我正在使用Spring的RestTemplate來完成其餘的調用。 RestTemplate接受一個URI(java.net.URI)或一個字符串,該字符串被Spring的UriTemplate(這個使用UTF-8作爲編碼)轉換爲URI。我需要創建一個iso-8859-1編碼的URI(java.net.URI)

我想將URI編碼爲iso-8859-1,而不是UTF-8。有沒有一種方法我可以java.net.URI中做到這一點(或辦法,我可以使用Spring的UriTemplate做到這一點)

舉個例子,我有參數q =島之風

的ISO-8859- 1個編碼(我想要的)的,這是:q=%D8yvind

這樣做的UTF-8編碼是:q=%C3%98yvind

如果我的第一編碼字符串,爲ISO-8859-1,然後創建一個URI,它看起來像這樣:q=%25D8yvind

回答

0

我找到了答案,使用Spring UriComponentBuilder

UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(url); 
uri = urlBuilder.build().encode("ISO-8859-1").toUri(); 

如果有人不使用UriCompomentBuilder一個解決方案,我相信其他人會欣賞它。