Hej, Problemt är med din header: En fundering: Skulle det fungera om man kodade på samma sätt som i e-mails? Jag tror det. Att det kan gå att koda på samma sätt som man kodar å, ä och ö i Subject fält för e-mail. Hej! Jag ska testa detta när jag kommer hem ikväll. Ledsen att jag inte varit så aktiv här på tråden som jag själv skapade.svenska tecken i filnamn vid nedladdning
jag har haft ett problem som jag sökt mej helt galen på nu. Det handlar om att få Response.Write(filename); att skicka upp en save as ruta med korrekt å ä ö i. Jag har provat både UTF-8 samt iso-8859-1 i både headern, contentencoding, web.config och i headern på aspx-sidan men det blir aldrig rätt.
Här kommer lite kod:
Kod:
public void DownloadFile(string fullpath)
{
HttpResponse response = HttpContext.Current.Response;
FileInfo f = new FileInfo(fullpath);
response.AddHeader("Content-Disposition", "attachment; filename=" + f.Name);
response.AddHeader("Content-Length", f.Length.ToString());
response.AddHeader("Content-Transfer-Encoding", "binary");
response.ContentType = "application/octet-stream";
response.WriteFile(f.FullName);
response.End();
}
Vore väldigt tacksam för lite hjälp. Jag har sett några försök till lösningar där det slutar med att man ska UrlEncod'a filnamnet vilket ändå blir pankaka sen när användaren väljer att spara ner filen (d.v.s det visas korrekt i save as rutan, men inte i själv filnamnet efter man sparat den). Dessutom så blir det bara massa konstiiga tecken om man använder Firefox.
Finns det nån lösning på detta eller måste jag nöja mej med att byta ut å ä ö mot a och o ?Sv: svenska tecken i filnamn vid nedladdning
<code>
response.AddHeader("Content-Disposition", "attachment; filename=" + f.Name);
</code>
Den är inte en del av HTTP protokollet utan i:
RFC 2183 - Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
http://www.faqs.org/rfcs/rfc2183.html
Det är bara tillåtet med 7bitars US-ASCII tecken.
<info>
Current [RFC 2045] grammar restricts parameter values (and hence
Content-Disposition filenames) to US-ASCII. We recognize the great
desirability of allowing arbitrary character sets in filenames, but
it is beyond the scope of this document to define the necessary
mechanisms. We expect that the basic [RFC 1521] `value'
specification will someday be amended to allow use of non-US-ASCII
characters, at which time the same mechanism should be used in the
Content-Disposition filename parameter.
</info>Sv:svenska tecken i filnamn vid nedladdning
Sv: svenska tecken i filnamn vid nedladdning
Det är det jag tror det menar när det hänvisar till RFC 1521.Sv: svenska tecken i filnamn vid nedladdning
Har för mig att jag löste det med Server.UrlPathEncode();
Alltså, i ditt fall:
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlPathEncode(f.Name));
/DanielSv:svenska tecken i filnamn vid nedladdning
Forts:
Jag har nu testat att använda mig att UrlPathEncode och det funkade bra i IE men ej i Firefox. Jag tror jag kanske göra ett webbläsartest och använder mig att två olika metoder beroende på vilken läsare det är sen om det är nån ovanlig läsare så gör jag om det är till a a o istället. Då borde det bli ok. Men det är ju aldrig roligt att behöva göra browser check. usch.