In our ExtJS/Struts2 web app, we allow users to export their data to a file, which is offered to them as a download.

To achieve this, we use Ext.DomHelper() to build up an iframe pointing to a server URL. Struts2 is configured to build up the contents of the file into an InputStream then return it, with HTTP headers set appropriately with "contentType", etc, and "contentDisposition: attachment; filename=${defaultFileName}".

We programmatically set "defaultFileName" so that the "Download File" popup has a default file name set.

For the most part this works well. HOWEVER, this solution doesn't seem to support a file name with non-ASCII characters, such as Russian. The file name that comes back in the response is a load of "????" (seen through Fiddler), and Internet Explorer offers you to download "______.xml".

I've tried various suggestions I've found on Google including doing URL encoding on the file name, setting UTF-8 in various places, but nothing so far has made any difference =(

Does anyone have any suggestions I could try? I need the file to be represented properly and to retain non-ASCII characters.

Thanks in advance...