Tengo un problema con la codificación utf-8 en primefaces 3. pero con this (agregando filtro para la codificación de caracteres en web.xml), mi problema fue resuelto. Pero tengo otro filtro para la carga de archivos de Primefaces en mi web.xml. En las páginas que hay fileupload, incluso sin subir nada, mi filtro de codificación de caracteres no funcionan y UTF-8 conjuntos de caracteres con valores desconocidos, al igual que cuando no había ningún filtro para la carga. ¿Cómo puedo usar este filtro?filtro de carga de archivos primefaces con filtro de caracteres utf8
Respuesta
trata de un error en PrimeFaces' MultipartRequest
. Está utilizando la codificación de caracteres predeterminada de la plataforma para los campos de formulario en lugar del establecido en la solicitud del servlet HTTP como lo hizo en HttpServletRequest#setCharacterEncoding()
en el filtro de codificación de caracteres (que supongo que se ha mapeado en web.xml
antes de PrimeFaces FileUploadFilter
).
Básicamente, la línea 85 y 88 de MultipartRequest
en PrimeFaces 3.3
formParams.get(item.getFieldName()).add(item.getString());
// ...
items.add(item.getString());
necesita ser cambiado de la siguiente manera
formParams.get(item.getFieldName()).add(item.getString(getCharacterEncoding()));
// ...
items.add(item.getString(getCharacterEncoding()));
he reportado como issue 4266. Mientras tanto, lo mejor es fijar manualmente la cadena de codificación incorrecta en el método de acción bean de respaldo de la siguiente manera, en el supuesto de que el servidor de la plataforma de codificación por defecto es ISO-8859-1:
string = new String(string.getBytes("ISO-8859-1"), "UTF-8");
En esencia, se necesita el línea de código para solucionar este problema:
new String(file.getFileName().getBytes(Charset.defaultCharset()), "UTF-8")
- 1. archivos QFileInfoList filtro con Qt
- 2. filtro global de las primefaces sin los filtros de columna
- 3. filtro garbling Maven caracteres especiales
- 4. nombres de archivos java patrón de filtro
- 5. Limite el número de caracteres con el filtro Plantilla Django
- 6. Filtro dataTables.net sin entrada de filtro incluida
- 7. Filtro de jQuery y retroceso Filtro
- 8. filtro de intención para archivos solo
- 9. Caracteres especiales en el filtro Solr fq
- 10. Extensión del archivo de filtro Con FileUpload
- 11. filtro de recursos m2eclipse
- 12. Galería con filtro carpeta
- 13. Marco de la entidad Eager carga del filtro
- 14. NSFileboard de filtro 0
- 15. Cambio caja de texto filtro de ancho de PrimeFaces tabla de datos
- 16. SonataAdminBundle valores model_type filtro en forma de filtro
- 17. OpenCV Filtro de Kalman
- 18. Filtro de servlet - No aplicar filtro a uno específico
- 19. Eliminación de ruido sinusoidal con filtro Butterworth
- 20. Android - ¿Filtro de intención?
- 21. filtro de Django ManyToMany()
- 22. Filtro de Hibernación Programáticamente
- 23. Filtro discreto para D3 Filtro cruzado Dimensiones
- 24. URL del filtro android en "filtro de intención"
- 25. Filtro de intención para exploradores de archivos comunes
- 26. de error con Entity Framework .Any() Filtro
- 27. filtro django con lista de valores
- 28. Anotación de Django con filtro anidado
- 29. Arreglo de filtro con diccionarios usando NSPredicate
- 30. C# GetFiles con el filtro de fecha
método addFormParam no tiene parámetro pedido, por lo que envié parámetro de la petición a este método como addFormParam (solicitud de HttpServletRequest, elemento FileItem) y yo hicimos lo que le dijo: formParams.get (item.getFieldName())) añadir (item.getString (request.getCharacterEncoding())).; pero no funcionó !!! ¿que puedo hacer? – zorro6064
he editado la respuesta, hay una línea más que necesita ser cambiado. La 'solicitud' se puede omitir, es un' HttpServletRequestWrapper'. – BalusC
Estimado BalusC, gracias por su útil respuesta. Mi problema solucionado – zorro6064