Ho un problema con la codifica utf-8 in primefaces 3. ma con this (aggiungendo il filtro per la codifica dei caratteri in web.xml), il problema è risolto. Ma ho un altro filtro per primefaces fileupload nel mio web.xml. Nelle pagine che ci sono file caricati, anche senza caricare nulla, il mio filtro di codifica dei caratteri non funziona e set di caratteri utf-8 con valori sconosciuti, proprio come quando non c'era nessun filtro per il caricamento. Come posso usare questo filtro insieme?primefaces fileupload filtro con filtro utf8 caratteri
risposta
Questo è un bug in MultipartRequest
di PrimeFaces. E 'utilizzando la codifica dei caratteri piattaforma predefinita per i campi modulo invece di quello impostato nella richiesta HTTP servlet come fatto da HttpServletRequest#setCharacterEncoding()
nel filtro codifica dei caratteri (che presumo sia stato mappato in web.xml
prima le primefaces FileUploadFilter
).
In sostanza, la linea 85 e 88 del MultipartRequest
in primefaces 3,3
formParams.get(item.getFieldName()).add(item.getString());
// ...
items.add(item.getString());
ha bisogno di essere cambiato come segue
formParams.get(item.getFieldName()).add(item.getString(getCharacterEncoding()));
// ...
items.add(item.getString(getCharacterEncoding()));
Ho riferito come issue 4266. Nel frattempo, la soluzione migliore è quella di correggere manualmente la stringa di codifica non corretta nel metodo sostenere azioni di fagioli come segue, partendo dal presupposto che la codifica di default piattaforma server è ISO-8859-1:
string = new String(string.getBytes("ISO-8859-1"), "UTF-8");
In sostanza, è necessario il seguente riga di codice per risolvere questo problema:
new String(file.getFileName().getBytes(Charset.defaultCharset()), "UTF-8")
- 1. Estensione file filtro con FileUpload
- 2. Modifica InputBox filtro larghezza primefaces DataTable
- 3. filtro garbling Maven caratteri speciali
- 4. Caratteri speciali nel filtro Solr fq
- 5. Filtro di caratteri XML illegali in Java
- 6. Filtro XML Caratteri illegali in .NET
- 7. fileUpload non attiva l'evento in PrimeFaces 3.5 con JSF 2.2
- 8. Filtro DBNull con LINQ
- 9. Filtro dinamico con liipImagineBundle
- 10. SQLAlchemy func.count con filtro
- 11. Filtro Django con regex
- 12. Esegui un filtro con caratteri jolly dei nomi di diramazione
- 13. Limitare il numero di caratteri con il filtro Django Template
- 14. Imposta il filtro automatico con più caratteri jolly
- 15. ArrayIndexOutOfBoundsException con ArrayAdapter con filtro
- 16. PHP preg_split utf8 caratteri
- 17. Filtro backbone
- 18. ElasticSearch, multi-match con filtro?
- 19. annotazione Django con filtro annidato
- 20. git diff con filtro autore
- 21. Filtro con Lista CoffeeScript comprehension
- 22. Filtro valori null con maiale
- 23. Filtro Matlab() con SciPy lfilter()
- 24. Django order_by() filtro con distinti()
- 25. ActiveAdmin - Filtro con valore predefinito
- 26. Rilegatura una tantum con filtro
- 27. Filtro elenco grande con javascript
- 28. Filtro gaussiano con ombreggiatori OpenGL
- 29. boost :: filesystem :: recursive_directory_iterator con filtro
- 30. Problemi con FindBugs escludi filtro
metodo addFormParam non ha parametro di richiesta così ho inviato parametro di richiesta a questo metodo come addFormParam (richiesta HttpServletRequest, voce FileItem) e ho fatto quello che hai detto: formParams.get (item.getFieldName())) aggiungere (item.getString (request.getCharacterEncoding())).; ma non ha funzionato !!! che cosa posso fare? – zorro6064
Ho modificato la risposta, c'è un'altra riga che deve essere cambiata. La 'richiesta' può essere omessa, è un' HttpServletRequestWrapper'. – BalusC
Caro BalusC, grazie per la tua utile risposta. Il mio problema risolto – zorro6064