Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

• Help others & share knowledge
• Earn cash & points
Solved

Posted on 2006-11-05
576 Views
In order to track file download rates, for all the files available for download on my web page I've placed a link to an ASP page which increments the download counter. Within the same page, it reads the binary data from file and uses following code to display the prompt window so user can either choose to save or open the file.

Response.CharSet = "UTF-8"
Response.BinaryWrite(bytFile)
Response.Flush
Response.Clear

The code works fine but whenever the file name contains unicode characters, file name displayed and saved on the prompt window is not the original name, rather it displayed some alphanumeric characters.

If I use Response.Redirect to the given file name, the prompt windows gives the correct result, but I cannot prevent user browser from opening the know MIME types within the browser itself.

I would like to find out how I can solve the unicode filename problem.

0
Question by:guest321

LVL 25

Expert Comment

ID: 17876724
interestign conundrum....

what happnes if you comment out this line:
Response.CharSet = "UTF-8"

also, I've found it best to stream the file to the browser using the ADO.Stream method.  This may be a better route and may cure the unciode filename issue

basically you pass the path to the file, and then specify the filename.

Here is the function, and how to use it:

<%
Dim strFilename,objStream,objFilesystem,objFilestream
Dim intFileLength
strFilename = strFile
Response.Buffer = True
Response.Clear
objStream.Open
objStream.Type = 1
Set objFilesystem = Server.CreateObject("Scripting.FileSystemObject")
if not objFilesystem.FileExists(strFilename) then
Response.Write("<h1>Error</h1>: " & strFilename & " does not exist<p>")
Response.End
end if
Set objFilestream = objFilesystem.GetFile( strFilename )
intFilelength = objFilestream.size
if err then
Response.Write("<h1>Error: </h1>" & err.Description & "<p>")
Response.End
end if
else
end if
Response.Charset = "UTF-8"
for i = 0 to objStream.size
i = i + 128000
Response.Flush
next
Set objFilestream = Nothing
End Function
%>

to use it:
<%
strPath = "c:\the\path\to\thefile.ext"
%>

HTAH
0

LVL 58

Expert Comment

ID: 17876773
I always  use..

<%
strfileName = "someobject.pdf"

Response.ContentType = "application/octet-stream"

objStream.Open
objStream.Type = 1 '1=binary 2=text

objStream.Close
Set objStream = Nothing
%>
0

LVL 6

Accepted Solution

gete earned 125 total points
ID: 17878717
RFC 2183, Section 2:
http://www.ietf.org/rfc/rfc2183.txt

NOTE ON PARAMETER VALUE LENGHTS: A short (length <= 78 characters)
parameter value containing only non-tspecials' characters SHOULD be
represented as a single token'.  A short parameter value containing
only ASCII characters, but including tspecials' characters, SHOULD
be represented as quoted-string'.  Parameter values longer than 78
characters, or which contain non-ASCII characters, MUST be encoded as
specified in [RFC 2184].

You can see the encoding spec in RFC 2231 (which obsoletes RFC 2184).
http://www.ietf.org/rfc/rfc2231.txt

For more example about implementation, you can visit http://www.codeproject.com/aspnet/NonUSASCII.asp
(unfortunately, it's in ASP.NET/C#).
0

Author Comment

ID: 17887307
Thank you everyone for the help! The problem has been solved by enclosing the file name with Server.URLEncode() method (also mentioned as Encoded-word mechanism in gete's given url).
0

LVL 25

Expert Comment

ID: 17889158
0

Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…