흑우마스터의 마법의 공간

.NET 6 API 작업 시 한글 깨짐 현상 해결 본문

프로그래밍/닷넷

.NET 6 API 작업 시 한글 깨짐 현상 해결

흑우마스터 2022. 6. 23. 18:14

기본적인 템플릿에서 제공 되는 걸 바로 한글로 바꿔 열어보면 궯궐답 같은 걸로 표시 된다.

 

닷넷코어가 인코딩을 제대로 지원 안하는 것도 있는지라 아래 코드는 깨져 나온다

 

 endpoints.MapGet("/", async context =>
 {
     await context.Response.WriteAsync("한글 출력");
  });

이거를 해결 하기 위해서 구글링을 해보았는데

services.Configure<Microsoft.Extensions.WebEncoders.WebEncoderOptions>(options =>
{
  options.TextEncoderSettings = new System.Text.Encodings.Web.TextEncoderSettings(System.Text.Unicode.UnicodeRanges.All); // 한글이 인코딩되는 문제 해결
});

이러한 코드가 있어서 넣어보았으나 마찬가지로 한글이 깨져 나왔다.

 

답은..

int euckrCodePage = 51949;  
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(euckrCodePage);
endpoints.MapGet("/", async context =>
{
  await context.Response.WriteAsync("한글", euckr, new System.Threading.CancellationToken());
});

이렇게 별도의 인코딩 변수를 만들어주고 아래와 같이 사용하는 방법이었다.

딱히.. 여기 한글을 넣을 필욘 없지만 필요한 경우라면 사용해보자