2017-04-01 2 views
1

내 코드가 생성하는 파일에 PC8 문자 (CP437 또는 ISO-8859-KO라고도 함)를 사용해야한다는 파일 지정을 받았기 때문에 나는이 포럼과 다른 포럼을 검색했습니다. 1), 다소 평범한 텍스트 파일이며 Å (십진수 143), Ä (십진수 142) 및 Ö (십진수 148)와 같은 국제 문자가 포함되어 있습니다.PC8 문자 세트를 사용하여 파일 만들기

내 코드는 파일에 있어야하는 모든 문자를 포함하는 문자열을 생성하며 유니 코드 버전을 얻을 수 있습니다.이 경우 UTF8 버전을 만들 수도 있지만이 경우 쓸모가 없습니다.

파일을 다운로드 할 수 있으면 좋겠지 만 브라우저에서 파일을받지 못하거나 바이러스 백신을 확인한 후 성공하지 못한 다른 브라우저를 사용해도 성공하지 못합니다.

잠시 동안 나는 파일을 우편으로 보낼 가능성을 썼다. 내 코드 외모 브라우저에서 파일을 다운로드 wan't 경우

MailMessage msg = new MailMessage(); 
msg.To.Add(new MailAddress(ReceiverMail, ReceiverName)); 
msg.From = new MailAddress(SenderMail, SenderName); 
msg.Subject = Subject; 
msg.Body = Body; 
MemoryStream ms = new MemoryStream(); 
StreamWriter sw = new StreamWriter(ms); 
sw.Write(StringToSend); 
sw.Flush(); 
ms.Position = 0; 
Attachment at = new Attachment(ms, FileName); 
msg.Attachments.Add(at); 
using (SmtpClient smtp = new SmtpClient()) 
{ 
    smtp.Send(msg); 
} 

:

내가 (모든 인코딩없이) 우편으로 코드 파일을 보낼 경우

은 다음과 같습니다 좋아요 :

Response.Clear(); 
Response.ClearHeaders(); 
Response.ClearContent(); 
Response.ContentType = "text/plain"; 
Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName); 
MemoryStream ms = new MemoryStream(); 
StreamWriter sw = new StreamWriter(ms); 
sw.Write(StringToSend); 
sw.Flush(); 
ms.Position = 0; 
Response.Write(ms); 
Response.Flush(); 
Response.End(); 

도와주세요!

답변

0

ISO-8859-1도 라틴어 1로 알려져있다, 당신은 다음과 같이 설정이 문자에 대한 인코더를 얻을 수 있습니다 :

var encoding = Encoding.GetEncoding("ISO-8859-1"); 

당신의 응답 예를 들어 당신이 Response.ContentEncoding와 다음이 사용할 수에서 :

Response.Clear(); 
Response.ClearHeaders(); 
Response.ClearContent(); 

Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName); 

Response.ContentType = "text/plain"; 
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1"); 

Response.Write(stringToSend); 

Response.Flush(); 
+0

제출 한 코드를 시도했지만 불행히도 다운로드가 전혀 안되어 문자 세트가 올바른지 확인할 수 없습니다. – Hegel

관련 문제