프로그래밍/닷넷
.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());
});
이렇게 별도의 인코딩 변수를 만들어주고 아래와 같이 사용하는 방법이었다.
딱히.. 여기 한글을 넣을 필욘 없지만 필요한 경우라면 사용해보자