У меня есть следующий код, чтобы отправить запрос WFS к локально запущенному экземпляру GeoServer с помощью Apache HTTP-клиент-4.1 библиотека:Получение результатов запроса WFS к GeoServer как UTF-8
ThreadSafeClientConnManager connectionMngr = new ThreadSafeClientConnManager();
DefaultHttpClient httpClient = new DefaultHttpClient(this.connectionMngr);
HttpPost httpPost = new HttpPost(wfsUrl);
httpPost.setEntity(new StringEntity(wsft, HTTP.UTF_8));
log.debug("Submitting WSFT request: " + wsft);
BasicResponseHandler responseHandler = new BasicResponseHandler();
String result = httpClient.execute(httpPost, responseHandler);
log.debug("Result of WSFT request: " + result);
двутавровых данных am из базы данных ГИС закодирован в UTF-8, и все функции, которые я ожидаю найти, найдены. Тем не менее, любые специальные символы не печатаются должным образом моими операциями отладки или правильно отображаются в интерфейсе моего приложения (веб-приложение Spring MVC).
Я знаю, что значения хранятся правильно в моей базе данных ГИС, поскольку я вижу их через SQL-клиент, и они печатаются так, как я ожидал. Я также могу видеть имена дорог и т. Д., Которые используют специальные символы, правильно печатаются на моих слоях карты, что предполагает правильность настройки GeoServer.
смотрит на меня как 'BasicResponseHandler' по умолчанию для' EntityUtils.toString (HttpEntity) ', который по умолчанию соответствует кодировке ISO-8859-1. Измените, как вы читаете объект ответа на какой-то метод, который заставляет UTF-8 – Alex