2015-01-26 35 views
0

我有以下代碼發送使用Apache HTTP客戶端4.1庫WFS請求到本地運行的GeoServer實例的結果我從GIS數據庫中檢索編碼爲UTF-8,並找到了我期望找到的所有功能。但是,我的調試語句沒有正確打印任何特殊字符,或者在我的應用程序的前端(Spring MVC Web應用程序)中正確顯示了任何特殊字符。獲取WFS請求的GeoServer爲UTF-8

我知道這些值正在我的GIS數據庫中正確存儲,因爲我可以通過SQL客戶端看到它們,並且它們按照我的預期打印。我還可以看到道路等名稱,它們使用特殊字符正在我的地圖圖層上正確打印,這表明GeoServer配置正確。

+1

我看來像'BasicResponseHandler'默認爲'EntityUtils.toString(HttpEntity)',其默認爲「ISO-8859-1」編碼。改變你如何閱讀響應實體的方法,強制UTF-8 – Alex 2015-01-26 18:20:19

回答

1

相反傳遞一個BasicResponseHandler的,使用HttpClient.execute(HttpUriRequest)方法,它返回一個HttpResponse,然後使用EntityUtils.toString(HttpEntity, "UTF-8"),僞:

HttpResponse r = httpClient.execute(httPost) 
String utf8encodedEntity = EntityUtils.toString(r.getEntity(), "UTF-8"); 
+0

完美工作,謝謝。 – 2015-01-27 09:56:53