You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Fernando Salazar de Paz <fs...@innova.uniovi.es> on 2005/04/11 10:23:36 UTC
Webdav issue with non ASCII characters
I can PUT archives but I am not be able to read them anymore.
For example:
Archive: manualín.pdf
In WebdavServlet::service
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String method = req.getMethod();
if (debug > 0) {
(1) log("[" + req.getRequestURI() + "]");
String path = getRelativePath(req);
(3) log("[" + method + "] " + path);
}
The output:
INFO: webdav: [/webdav/manual%C3%ADn.pdf] (1)
DefaultServlet::getRelativePath request.getPathInfo() (2)
INFO: webdav: DefaultServlet::getRelativePath.
request.getPathInfo()=/manualÃn.pdf
INFO: webdav: [HEAD] /manualÃn.pdf (3)
In NTFS Tomcat has written manualÃn.pdf instead of manualín.pdf
I have tried with DefaultServlets languageEncoding init parameter using
UTF-8 with no result.
Thanks in advance
RE: Webdav issue with non ASCII characters
Posted by Fernando Salazar de Paz <fs...@innova.uniovi.es>.
The problem arises with pdf files, for example. Although I am using IE (it
uses UTF-8 in the encoding process), when I request a PDF file a new
(second) request is made by Acrobat Reader. Acrobat Reader uses ISO-8859-1
and Tomcat will not be able to decode the uri properly. What is the reason
for the second request ?, with ZIP files, txt files I have no problem.
I am getting mad <:0
It's a client issue, but what can I do at server side to provide
compatibility ? can I guess the encoding at servlet's service method ?
Thanks in advance
-----Mensaje original-----
De: Fernando Salazar de Paz [mailto:fsaldepaz@innova.uniovi.es]
Enviado el: lunes, 11 de abril de 2005 16:41
Para: 'Tomcat Users List'
Asunto: RE: Webdav issue with non ASCII characters
Using URIEncoding parameter, at Server.xml, PUT and DELETE methods works ok.
I am still having trouble with GET method.
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" />
--------------------------- Tomcat log ------------------------------------
INFO: webdav: [HEAD] /última-guía.pdf
11-abr-2005 16:31:32 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/última-guía.pdf' headers only
11-abr-2005 16:31:32 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [PUT] /última-guía.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [GET] /última-guía.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/última-guía.pdf' headers and data
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveFile: contentType='application/pdf'
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveFile: contentLength=202259
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [GET] /?ltima-gu?a.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/?ltima-gu?a.pdf' headers and data
11-abr-2005 16:31:57 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [DELETE] /última-guía.pdf
--------------------------- Tomcat log ------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
RE: Webdav issue with non ASCII characters
Posted by Fernando Salazar de Paz <fs...@innova.uniovi.es>.
Using URIEncoding parameter, at Server.xml, PUT and DELETE methods works ok.
I am still having trouble with GET method.
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" />
--------------------------- Tomcat log ------------------------------------
INFO: webdav: [HEAD] /última-guía.pdf
11-abr-2005 16:31:32 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/última-guía.pdf' headers only
11-abr-2005 16:31:32 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [PUT] /última-guía.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [GET] /última-guía.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/última-guía.pdf' headers and data
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveFile: contentType='application/pdf'
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveFile: contentLength=202259
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [GET] /?ltima-gu?a.pdf
11-abr-2005 16:31:40 org.apache.catalina.core.ApplicationContext log
INFO: webdav: DefaultServlet.serveResource: Serving resource
'/?ltima-gu?a.pdf' headers and data
11-abr-2005 16:31:57 org.apache.catalina.core.ApplicationContext log
INFO: webdav: [DELETE] /última-guía.pdf
--------------------------- Tomcat log ------------------------------------
-----Mensaje original-----
De: Fernando Salazar de Paz [mailto:fsaldepaz@innova.uniovi.es]
Enviado el: lunes, 11 de abril de 2005 14:36
Para: 'Tomcat Users List'
Asunto: RE: Webdav issue with non ASCII characters
Internet Explorer uses UTF-8 to encode URLs and Tomcat tries "ISO-8859-1" in
decoding. The result is a wrong filename.
String fileName = URLEncoder.encode("manualín.pdf", "ISO-8859-1");
*1
System.out.println(fileName+" produce "+URLDecoder.decode(fileName,
"UTF-8"));
fileName = URLEncoder.encode("manualín.pdf", "UTF-8");
*2
System.out.println(fileName+" produce "+URLDecoder.decode(fileName,
"ISO-8859-1"));
--------------------- OUTPUT follows ---------------------
*1 manual%EDn.pdf produce manual?n.pdf
*2 manual%C3%ADn.pdf produce manualÃn.pdf
manualín.pdf => manualÃn.pdf
Other browsers uses "ISO-8859-1" but we need to be compatible with IE.
Thanks and regards
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
RE: Webdav issue with non ASCII characters
Posted by Fernando Salazar de Paz <fs...@innova.uniovi.es>.
Internet Explorer uses UTF-8 to encode URLs and Tomcat tries "ISO-8859-1" in
decoding. The result is a wrong filename.
String fileName = URLEncoder.encode("manualín.pdf", "ISO-8859-1");
*1
System.out.println(fileName+" produce "+URLDecoder.decode(fileName,
"UTF-8"));
fileName = URLEncoder.encode("manualín.pdf", "UTF-8");
*2
System.out.println(fileName+" produce "+URLDecoder.decode(fileName,
"ISO-8859-1"));
--------------------- OUTPUT follows ---------------------
*1 manual%EDn.pdf produce manual?n.pdf
*2 manual%C3%ADn.pdf produce manualÃn.pdf
manualín.pdf => manualÃn.pdf
Other browsers uses "ISO-8859-1" but we need to be compatible with IE.
Thanks and regards
-----Mensaje original-----
De: Fernando Salazar de Paz [mailto:fsaldepaz@innova.uniovi.es]
Enviado el: lunes, 11 de abril de 2005 10:24
Para: tomcat-user@jakarta.apache.org
Asunto: Webdav issue with non ASCII characters
I can PUT archives but I am not be able to read them anymore.
For example:
Archive: manualín.pdf
In WebdavServlet::service
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String method = req.getMethod();
if (debug > 0) {
(1) log("[" + req.getRequestURI() + "]");
String path = getRelativePath(req);
(3) log("[" + method + "] " + path);
}
The output:
INFO: webdav: [/webdav/manual%C3%ADn.pdf] (1)
DefaultServlet::getRelativePath request.getPathInfo() (2)
INFO: webdav: DefaultServlet::getRelativePath.
request.getPathInfo()=/manualÃn.pdf
INFO: webdav: [HEAD] /manualÃn.pdf (3)
In NTFS Tomcat has written manualÃn.pdf instead of manualín.pdf
I have tried with DefaultServlets languageEncoding init parameter using
UTF-8 with no result.
Thanks in advance
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org