2014-03-12 3 views
5

저는 .NET 개발자이며 HTML 파일을 C#에서 ANSI로 변환하는 응용 프로그램을 수행하라는 요청을 받았습니다.C#을 사용하는 UTF-8에서 ANSI로 변환

변환 된 파일이 Visual Fox Pro 응용 프로그램에서 실행되므로 ANSI가 필요합니다.

기본 논리는 변환 자체에 문제가 있음을 나타냅니다.

나는이 코드를 사용해 보았습니다 : http://social.msdn.microsoft.com/Forums/pt-BR/026ddda3-9bd1-4502-b445-e2a1cc88345d/convert-file-from-utf8-to-ansi?forum=csharplanguage 그러나 editplus에서 파일을 검사했을 때 파일은 여전히 ​​ANSI로 변환되지 않았고 가장 나쁜 들여 쓰기는 모두 엉망입니다.

내가해야 할 일은 editplus와 같은 파일을 변환하는 것입니다.이 파일은 문서 들여 쓰기를 유지하고 모든 파일을 UTF8에서 ANSI로 변환 할 수 있습니다.

요점은 내가 수백 개의 HTML 파일로 작업하고 있기 때문에 텍스트 편집기를 사용하여 하나씩 수행 할 수 없다는 것입니다.

어떻게 변환 할 수 있습니까?

editplus와 같이 들여 쓰기를 유지하고 변환하는 방법이 있습니까?

", o, é, í ..."와 같은 특수 문자는 변환하기 전에 수정하고 있습니다. 이것이 올바른 접근 방법입니까? 대신 ASCII의

+1

는 [. "ANSI"는 모호한 용어이다 (http://stackoverflow.com/questions/701882/what-is-ansi-format) 1. 너 무슨 뜻이야? 2. 알고 계십니까? [절대적으로 모든 소프트웨어 개발자가 절대적으로 최소, 유니 코드와 문자 세트에 대해 알 필요가 있습니다 (변명 없음)] (http://www.joelonsoftware.com/articles/Unicode.html)? 3. 당신의 코드는 어떻게 생겼는가? (언급 된 다양한 인코딩을 가진 포럼에 대한 링크는 우리에게 전체 그림을 제공하지 않는다)? –

+1

ASCII가 아닌 Encoding.Default를 사용하십시오. 그것은 물론 손실 변환입니다, 당신은 이상적인 결과를 기대할 수 없습니다. –

+0

기사를 보내 주셔서 감사합니다. 인코딩 지식을 읽어야합니다. –

답변

8

사용 기본 인코딩 :

StreamReader sr = new StreamReader(infile); 
StreamWriter sw = new StreamWriter(outfile, false, Encoding.Default); 

// invoke the ReadToEnd method 
sw.WriteLine(sr.ReadToEnd()); 

sw.Close(); 
sr.Close(); 
+0

기본값이 ANSI 인코딩이라고 예측하지 않았습니다. 큰 고마워. 내 질문에 답하면 나중에 도움이 될 수 있습니다. 위의 방법으로 들여 쓰기와 서식이 손상되지 않습니다. utf-8을 ANSI로 변환하는 가장 좋은 방법은 Encoding.Default를 사용하여 올바르게 변환해야 할 필요가있는 경우에 먼저 액센트를 수정하는 것입니다. –