2011-04-01 9 views
3

문제점이 하나 있습니다.파일 다운로드 대화 상자

ASP.NET 응용 프로그램에서 일부 문서에 대한 링크를 만들었 으면 문서 이름이 데이터베이스에 저장되고 사용자가 파일 다운로드 대화 상자를 클릭하면 문서 이름이 저장됩니다.

파일 이름이 Serbian Cyrilic 인 경우 문제가 발생합니다. 파일 다운로드 대화 상자에 파일 이름이 이상한 문자로 표시됩니다. 내가 파일 이름에 대해 HTMLEncode 사용 Whene (오른쪽 파일 이름을 표시합니다) IE는 잘 작동 이미지

File download file name strange characters

참조하지만 문제는 파이어 폭스입니다.

감사합니다.

+2

아마 아니, 코드를 보여? –

+0

가능한 [브라우저의 파일 다운로드 상자에 비 ASCII 파일 이름을 표시하는 방법?] (http://stackoverflow.com/questions/149058/how-to-display-a-non-ascii-filename-in) -the-file-download-box-in-browsers) – devnull

답변

2

비 -AscII 문자를 인코딩해야합니다. 나는이 방법을 사용하고 있습니다 :

public static string URLEncode(string tekst) 
    { 
     byte[] t = Encoding.UTF8.GetBytes(tekst); 
     string s = ""; 
     for (int i = 0; i < t.Length; i++) 
     { 
      byte b = t[i]; 
      int ib = Convert.ToInt32(b); 
      if (ib < 46 || ib > 126) 
      { 
       s += "%" + ib.ToString("x"); 
      } 
      else 
      { 
       s += Convert.ToChar(b); 
      } 
     } 
     return s; 
    } 

을 그리고 당신이 그것을 인코딩 할 수 있는지 확인 - 그것은 IE와 FF에서 다음 작동합니다 :

if (Page.Request.Browser.IsBrowser("IE")) 
fileName = URLEncode(fileName); 
+2

그래, 고마워,하지만 이미 UrlEncode HttpUtility.UrlEncode (tekst)에 대한 방법이있다. 나는이 방법으로 일했지만, 어쩌면 더 좋은 해결책이 있는지 알고 싶었습니다. – buda

관련 문제