ASP.NET Core에서 Shift_JIS로 CSV 출력을 시도하면 다른 페이지의 HTML 내용이 비어 있습니다.
.NET Core는 표준에서 Shift_JIS를 지원하지 않습니다.
고객 요구 사항에서 Shift_JIS에서 CSV 파일 출력을해야하기 때문에 단순히 StreamWriterSystem.Text.Encoding.GetEncoding("shift_jis")
를 지정하면 OK라고 생각하면 에러를 토했다.
System.ArgumentException: 'shift_jis' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
at System.Text.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
shift_jis가 지원되지 않는다… … 그렇다면…
조금 살펴보면 .NET Core에서는 ASCII와 Unicode 밖에 표준에서는 서포트하고 있는 것 같다
Windows 10에서도 표준 문자 코드를 Shift_JIS에서 UTF-8로 바꾸는 것 같기 때문에 그 일환일 것이다
다른 문자 코드를 사용하려면 CodePagesEncodingProvider 사용
nuget으로 System.Text.Encoding.CodePages
를 추가하면 OK
그리고 Shift_JIS 사용 코드 앞에서 다음을 호출하면 OK
// エンコードプロバイダを登録
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
……의 일이었지만
HTML 응답의 Body부가 하늘로 돌아오는 현상이 발생
System.Text.Encoding.CodePages
를 추가한 이외 코드를 하나도 망설이지 않은 상태에서도 왠지 빈 HTML 페이지가 응답으로 돌아온다
해결 방법
Program.cs
의 Main
메소드로 인코딩 프로바이더를 등록하면 OK
public static void Main(string[] args)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
CreateWebHostBuilder(args).Build().Run();
}
여기서 등록해 두면 Shift_JIS 사용 직전에 다시 등록할 필요도 없기 때문에 ASP.NET Core에서 표준 문자 코드 이외 사용할 때는 Main
메소드내에서 인코딩 프로바이더 등록이라고 기억해 두면 좋다
Reference
이 문제에 관하여(ASP.NET Core에서 Shift_JIS로 CSV 출력을 시도하면 다른 페이지의 HTML 내용이 비어 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komunya/items/0f86f22f0e9a9a122774
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
System.ArgumentException: 'shift_jis' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
at System.Text.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
nuget으로
System.Text.Encoding.CodePages
를 추가하면 OK그리고 Shift_JIS 사용 코드 앞에서 다음을 호출하면 OK
// エンコードプロバイダを登録
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
……의 일이었지만
HTML 응답의 Body부가 하늘로 돌아오는 현상이 발생
System.Text.Encoding.CodePages
를 추가한 이외 코드를 하나도 망설이지 않은 상태에서도 왠지 빈 HTML 페이지가 응답으로 돌아온다
해결 방법
Program.cs
의 Main
메소드로 인코딩 프로바이더를 등록하면 OK
public static void Main(string[] args)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
CreateWebHostBuilder(args).Build().Run();
}
여기서 등록해 두면 Shift_JIS 사용 직전에 다시 등록할 필요도 없기 때문에 ASP.NET Core에서 표준 문자 코드 이외 사용할 때는 Main
메소드내에서 인코딩 프로바이더 등록이라고 기억해 두면 좋다
Reference
이 문제에 관하여(ASP.NET Core에서 Shift_JIS로 CSV 출력을 시도하면 다른 페이지의 HTML 내용이 비어 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/komunya/items/0f86f22f0e9a9a122774
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Program.cs
의 Main
메소드로 인코딩 프로바이더를 등록하면 OKpublic static void Main(string[] args)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
CreateWebHostBuilder(args).Build().Run();
}
여기서 등록해 두면 Shift_JIS 사용 직전에 다시 등록할 필요도 없기 때문에 ASP.NET Core에서 표준 문자 코드 이외 사용할 때는
Main
메소드내에서 인코딩 프로바이더 등록이라고 기억해 두면 좋다
Reference
이 문제에 관하여(ASP.NET Core에서 Shift_JIS로 CSV 출력을 시도하면 다른 페이지의 HTML 내용이 비어 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/komunya/items/0f86f22f0e9a9a122774텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)