.txt 파일을 ANSI 로 저장되게 하는 방법

안녕하세요 며칠 전에도 질문 했었는데요…

알려주셨던 내용들로 해봐도 이상하게 .txt 파일이 ANSI 로 저장되지 않고 UTF-8 로 저장이 됩니다…

VisualStudio2022 community 를 사용하고 있고, 아래 그림은 EncodingInfo[] enInfos = Encoding.GetEncodings(); 메소드를 사용해서 사용 가능한 인코딩 목록입니다. 저 목록에서 어떤걸 선택해야 ANSI 로 저장이 될까요?

질문2

신기하게도 vs2012(2012는 professional) 에서는 인코딩 목록이 140개나 나오네여././
vs2022 에서는 7개 뿐이 안나오는데 ㅠㅠ

질문3

만약 인코딩 목록에 있는 것중에 ANSI 로 저장할 수 있는게 없다면…어떻게 해야할까요?
코드 페이지? 라는걸 설치해야하는건지,아니면 VisualStudio 내에서 설정을 해야한다던지 방법이 있을까요?

======== 수정 내용 -=-==

vs2022 는 버전이 communiy 이고, vs2012 는 professional 인데…
설마 버전 차이 때문에 사용 가능한 encoding 목록이 다를 수가 있나요

1개의 좋아요

안시코드가 정말로 맞나요? 한글은 깨집니다. 저장시 메소드 옵션을 살펴보세요.

1개의 좋아요

답변 감사합니다 ! 저장시 메소드 옵션을 살펴봐야한다는게 무슨 말일까요…

신기하게도 아래 소스 코드를 가지고 vs2012 에서 하면 ANSI 로 저장이 되고,
vs2022 에서 하면 ANSI 로 저장이 안되네요…

Encoding encoding = Encoding.Default;
string filePath = @“d:\파일저장_test_2022.txt”;
using (StreamWriter writer = new StreamWriter(filePath, false, encoding))
{
writer.Write(textBox1.Text);
}

1개의 좋아요

그런데 아스키는 아닐 듯 합니다.

1개의 좋아요
#r "nuget: System.Text.Encoding.CodePages"

using System.Text;

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

string text = "가나다라";
string filePath = "euc_kr_text_file.txt";

// EUC-KR 인코딩 인스턴스 가져오기
Encoding eucKr = Encoding.GetEncoding("euc-kr");

// 인코딩을 사용하여 텍스트를 파일에 저장
File.WriteAllText(filePath, text, eucKr);

Console.WriteLine($"텍스트 '{text}'가 {filePath}에 EUC-KR로 저장되었습니다.");

위 코드로 닷넷인터랙티브에서 테스트하니 euc-kr로 저장이 되었습니다.

2012에서 Console.WriteLine(Encoding.Default.ToString()); 로 어떤값이 나오는지 살펴보시기 바랍니다.
그리고, 2022에서도요.

닷넷인터랙티브에서 저도 테스트해보니 Encoding.Default가 System.Text.UTF8Encoding+UTF8EncodingSealed로 나타납니다.

4개의 좋아요

넵!

1개의 좋아요

답변 감사합니다, 한번 해볼게요

1개의 좋아요

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// ANSI 인코딩 인스턴스 가져오기
Encoding ansi = Encoding.GetEncoding(949);

위의 소스 코드로 코드페이지 추가 하고나니 ANSI 로 인코딩되어 텍스트 파일 만들어지네요!! 감사합니다 ㅠ!!!

2개의 좋아요