[jboss-jira] [JBoss JIRA] (WFLY-6742) javax.servlet.http.Part.getSubmittedFileName() uses wrong encoding
Maxim Wirt (JIRA)
issues at jboss.org
Fri Jun 24 04:19:00 EDT 2016
[ https://issues.jboss.org/browse/WFLY-6742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13256673#comment-13256673 ]
Maxim Wirt edited comment on WFLY-6742 at 6/24/16 4:18 AM:
-----------------------------------------------------------
The charset is set by a Filter
@WebFilter("/*")
public class UtfFilter implements Filter {
private FilterConfig filterConfig = null;
public UtfFilter() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request instanceof HttpServletRequest) {
HttpServletRequest htRequest = (HttpServletRequest)request;
try {
htRequest.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
throw new ServletException(e);
}
}
chain.doFilter(request, response);
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
the servlet is
@WebServlet("/file")
@MultipartConfig
public class FileServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getCharacterEncoding()); // returns "UTF-8"
for (Part part : request.getParts()) {
System.out.println("file=" + part.getSubmittedFileName()); //wrong name
System.out.println(new String(part.getSubmittedFileName().getBytes("ISO-8859-1"), "UTF-8")); // correct name
}
}
}
was (Author: maximwirt):
The charset is set by a Filter
@WebFilter("/*")
public class UtfFilter implements Filter {
private FilterConfig filterConfig = null;
public UtfFilter() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request instanceof HttpServletRequest) {
HttpServletRequest htRequest = (HttpServletRequest)request;
try {
htRequest.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
throw new ServletException(e);
}
}
chain.doFilter(request, response);
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
the servlet is
@WebServlet("/file")
@MultipartConfig
public class FileServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getCharacterEncoding()); // returns "UTF-8"
for (Part part : request.getParts()) {
System.out.println("file=" + part.getSubmittedFileName()); //wrong name
System.out.println(new String(part.getSubmittedFileName().getBytes("ISO-8859-1"), "UTF-8")); // correct name
}
}
}
> javax.servlet.http.Part.getSubmittedFileName() uses wrong encoding
> ------------------------------------------------------------------
>
> Key: WFLY-6742
> URL: https://issues.jboss.org/browse/WFLY-6742
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.2.0.Final, 10.0.0.Final
> Environment: Ubuntu 16.04 LTS
> oracle java
> java version "1.8.0_91"
> Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
> Wildfly 8.2.0.Final
> Wildfly 10.0.0.Final
> Reporter: Maxim Wirt
> Assignee: Stuart Douglas
> Attachments: визитка.svg
>
>
> Servlet 3.1 file upload feature implementation uses incorrect character set for decoding file names
> request.getCharacterEncoding() returns "UTF-8",
> System property file.encoding is set to UTF-8, but
> javax.servlet.http.Part.getSubmittedFileName() returns file name encoded using Latin character set
> all non-latin symbols in name of the file become unreadably characters.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list