RE: What is wrong with this upload filename (UTF-8) decoding?

2003-12-29 Thread Daniel Rabe
I see a similar problem with file upload. It doesn't look like
org.apache.strugs.upload.FormFile exposes a setHeaderEncoding method...

Daniel Rabe

-Original Message-
From: Jason Lea [mailto:[EMAIL PROTECTED] 
Sent: Friday, December 26, 2003 1:33 PM
To: Struts Users Mailing List
Subject: Re: What is wrong with this upload filename (UTF-8) decoding?


I have not used the file upload yet, but I believe you need to set the 
encoding for the headers

formFile.setHeaderEncoding(UTF-8)

setHeaderEncoding does this:
Specifies the character encoding to be used when reading the headers of 
individual parts. When not specified, or |null|, the platform default 
encoding is used.
If this was running on a English operating system it is probably 
defaulting to the Latin-1 encoding.

 From this Java Doc:
http://jakarta.apache.org/commons/fileupload/apidocs/org/apache/commons/file
upload/FileUploadBase.html#setHeaderEncoding(java.lang.String)

Please post back to the forum if this works.  I would be interested in 
the result.

Zsolt Koppany wrote:

Hi,

my application has to support UTF-8 including when files are uploaded 
with UTF-8 characters in the filename (for example: 
??.txt).

I use a servlet filter that always call
request.setCharacterEncoding(UTF-8) and my jsp pages contain 
response.setContentType(text/html; charset=UTF-8);

Everything works fine except that I have problems with decoding of the 
name of uploaded filenames.

I use the code below to get the name of the uploaded filename:

String nm = formFile.getFileName();
String filename = new String(nm.getBytes(), UTF-8);

The code above converts only the first couple of characters correctly
(result: ??.txt).

Any ideas how to fix the problem?

I use TC-4.1.29, Struts-1.1, jdk1.4.2_02 Windows-XP.

Zsolt



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


  


-- 
Jason Lea



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: What is wrong with this upload filename (UTF-8) decoding?

2003-12-29 Thread Jason Lea
Yes, I think you are right, i didn't realise which class we were talking 
about there.  I have just read a bit more about the Struts FileUpload 
and how it wraps commons upload.  Assuming Commons Upload works 
correctly with the setHeaderEncoding, then I guess there might be work 
around.

Struts will use org.apache.struts.upload.CommonsMultipartRequestHandler 
by default to handle extracting the parameters out of the request and 
populating the form.  It uses the DiskFileUpload class from Commons 
FileUpload.  It is that handler that we need to modify, to do that we 
could create our own using the 
org.apache.struts.upload.CommonsMultipartRequestHandler source as the basis.

We need to tell Struts to use ours instead of the defualt by adding this 
to your struts-config.xml

controller multipartClass=my.own.MultiPartClassHandler /

Then to modify org.apache.struts.upload.CommonsMultipartRequestHandler 
by creating our my.own.MultiPartClassHandler class.
We need to modify  the handleRequest() method like so:

 // Create and configure a DIskFileUpload instance.
 DiskFileUpload upload = new DiskFileUpload();
 upload.setHeaderEncoding(UTF-8);

 // Set the maximum size before a FileUploadException will be thrown.
 upload.setSizeMax((int) getSizeMax(ac));
 ...
This is all untested and off the top of my head, so there is likely to 
be a mistake there somewhere, but I think it is possible.

Daniel Rabe wrote:

I see a similar problem with file upload. It doesn't look like
org.apache.strugs.upload.FormFile exposes a setHeaderEncoding method...
Daniel Rabe

-Original Message-
From: Jason Lea [mailto:[EMAIL PROTECTED] 
Sent: Friday, December 26, 2003 1:33 PM
To: Struts Users Mailing List
Subject: Re: What is wrong with this upload filename (UTF-8) decoding?

I have not used the file upload yet, but I believe you need to set the 
encoding for the headers

formFile.setHeaderEncoding(UTF-8)

setHeaderEncoding does this:
Specifies the character encoding to be used when reading the headers of 
individual parts. When not specified, or |null|, the platform default 
encoding is used.
If this was running on a English operating system it is probably 
defaulting to the Latin-1 encoding.

From this Java Doc:
http://jakarta.apache.org/commons/fileupload/apidocs/org/apache/commons/file
upload/FileUploadBase.html#setHeaderEncoding(java.lang.String)
Please post back to the forum if this works.  I would be interested in 
the result.

Zsolt Koppany wrote:

 

Hi,

my application has to support UTF-8 including when files are uploaded 
with UTF-8 characters in the filename (for example: 
??.txt).

I use a servlet filter that always call
request.setCharacterEncoding(UTF-8) and my jsp pages contain 
response.setContentType(text/html; charset=UTF-8);

Everything works fine except that I have problems with decoding of the 
name of uploaded filenames.

I use the code below to get the name of the uploaded filename:

String nm = formFile.getFileName();
String filename = new String(nm.getBytes(), UTF-8);
The code above converts only the first couple of characters correctly
(result: ??.txt).
Any ideas how to fix the problem?

I use TC-4.1.29, Struts-1.1, jdk1.4.2_02 Windows-XP.

Zsolt



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


   

 



--
Jason Lea


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


RE: What is wrong with this upload filename (UTF-8) decoding?

2003-12-26 Thread Zsolt Koppany
After posting now I see that the posted email contains ? characters
instead of the original chinese characters I used in my example.

Zsolt

 -Original Message-
 From: Zsolt Koppany [mailto:[EMAIL PROTECTED]
 Sent: Friday, December 26, 2003 11:45 AM
 To: Struts Users Mailing List
 Subject: What is wrong with this upload filename (UTF-8) decoding?


 Hi,

 my application has to support UTF-8 including when files are uploaded with
 UTF-8 characters in the filename (for example: ??.txt).

 I use a servlet filter that always call
 request.setCharacterEncoding(UTF-8) and my jsp pages contain
 response.setContentType(text/html; charset=UTF-8);

 Everything works fine except that I have problems with decoding
 of the name
 of uploaded filenames.

 I use the code below to get the name of the uploaded filename:

 String nm = formFile.getFileName();
 String filename = new String(nm.getBytes(), UTF-8);

 The code above converts only the first couple of characters correctly
 (result: ??.txt).

 Any ideas how to fix the problem?

 I use TC-4.1.29, Struts-1.1, jdk1.4.2_02 Windows-XP.

 Zsolt



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]






-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: What is wrong with this upload filename (UTF-8) decoding?

2003-12-26 Thread Firat TIRYAKI
I think it depends on the operating system on your machine where the app
server is running... Try to solve the problem with your OS.

F.

- Original Message - 
From: Zsolt Koppany [EMAIL PROTECTED]
To: Struts Users Mailing List [EMAIL PROTECTED]
Sent: Friday, December 26, 2003 12:51 PM
Subject: RE: What is wrong with this upload filename (UTF-8) decoding?


 After posting now I see that the posted email contains ? characters
 instead of the original chinese characters I used in my example.

 Zsolt

  -Original Message-
  From: Zsolt Koppany [mailto:[EMAIL PROTECTED]
  Sent: Friday, December 26, 2003 11:45 AM
  To: Struts Users Mailing List
  Subject: What is wrong with this upload filename (UTF-8) decoding?
 
 
  Hi,
 
  my application has to support UTF-8 including when files are uploaded
with
  UTF-8 characters in the filename (for example: ??.txt).
 
  I use a servlet filter that always call
  request.setCharacterEncoding(UTF-8) and my jsp pages contain
  response.setContentType(text/html; charset=UTF-8);
 
  Everything works fine except that I have problems with decoding
  of the name
  of uploaded filenames.
 
  I use the code below to get the name of the uploaded filename:
 
  String nm = formFile.getFileName();
  String filename = new String(nm.getBytes(), UTF-8);
 
  The code above converts only the first couple of characters correctly
  (result: ??.txt).
 
  Any ideas how to fix the problem?
 
  I use TC-4.1.29, Struts-1.1, jdk1.4.2_02 Windows-XP.
 
  Zsolt
 
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: What is wrong with this upload filename (UTF-8) decoding?

2003-12-26 Thread Jason Lea
I have not used the file upload yet, but I believe you need to set the 
encoding for the headers

formFile.setHeaderEncoding(UTF-8)

setHeaderEncoding does this:
Specifies the character encoding to be used when reading the headers of 
individual parts. When not specified, or |null|, the platform default 
encoding is used.
If this was running on a English operating system it is probably 
defaulting to the Latin-1 encoding.

From this Java Doc:
http://jakarta.apache.org/commons/fileupload/apidocs/org/apache/commons/fileupload/FileUploadBase.html#setHeaderEncoding(java.lang.String)
Please post back to the forum if this works.  I would be interested in 
the result.

Zsolt Koppany wrote:

Hi,

my application has to support UTF-8 including when files are uploaded with
UTF-8 characters in the filename (for example: ??.txt).
I use a servlet filter that always call
request.setCharacterEncoding(UTF-8) and my jsp pages contain
response.setContentType(text/html; charset=UTF-8);
Everything works fine except that I have problems with decoding of the name
of uploaded filenames.
I use the code below to get the name of the uploaded filename:

String nm = formFile.getFileName();
String filename = new String(nm.getBytes(), UTF-8);
The code above converts only the first couple of characters correctly
(result: ??.txt).
Any ideas how to fix the problem?

I use TC-4.1.29, Struts-1.1, jdk1.4.2_02 Windows-XP.

Zsolt



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 

--
Jason Lea


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]