фильтр загрузки файлов primefaces с фильтром символов utf8
У меня проблема с кодировкой utf-8 в primefaces 3. но с Этим (Добавление фильтра для кодирования символов в web.xml), моя проблема решена. Но у меня есть еще один фильтр для загрузки файлов primefaces в моей сети.XML. На страницах, которые есть fileupload, даже без загрузки чего-либо, мой фильтр кодировки символов не работает и наборы символов utf-8 с неизвестными значениями, как и тогда, когда не было фильтра для загрузки. Как я могу использовать этот фильтр вместе?
2 ответа:
Это ошибка в примитивах'
MultipartRequest
. Он использует кодировку символов платформы по умолчанию для полей формы вместо набора в запросе сервлета HTTP, как это сделаноHttpServletRequest#setCharacterEncoding()
в вашем фильтре кодировки символов (который, как я предполагаю, был отображен вweb.xml
Перед примерамиFileUploadFilter
).В основном, строки 85 и 88 из
MultipartRequest
в примитивах 3.3formParams.get(item.getFieldName()).add(item.getString()); // ... items.add(item.getString());
Необходимо изменить следующим образом
formParams.get(item.getFieldName()).add(item.getString(getCharacterEncoding())); // ... items.add(item.getString(getCharacterEncoding()));
Я сообщил об этом как выпуск 4266. В то же время, ваш лучше всего вручную исправить неверную кодировку строки в методе действия backing bean следующим образом, предполагая, что кодировка по умолчанию серверной платформы-ISO-8859-1:
string = new String(string.getBytes("ISO-8859-1"), "UTF-8");