From 876ec7345bbca19ad3cf16a7a1acca811793f978 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Fri, 26 Jun 2026 18:48:33 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20HTML=20=EC=9D=B8=EC=BD=94=EB=8D=94=20?= =?UTF-8?q?=EC=BB=A4=EC=8A=A4=ED=84=B0=EB=A7=88=EC=9D=B4=EC=A7=95=20-=20?= =?UTF-8?q?=ED=95=9C=EA=B8=80=20=EB=AC=B8=EC=9E=90=20=EC=98=AC=EB=B0=94?= =?UTF-8?q?=EB=A5=B8=20=EC=9D=B8=EC=BD=94=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 근본 원인 Razor Pages 기본 HtmlEncoder가 한글을 유니코드 엔티티로 과도 인코딩 - 데이터: '사업자' → 렌더링: '사업자' - 사용자에게 보이는 것: 인코딩된 엔티티 텍스트 ## 해결 Program.cs에서 HtmlEncoder를 UnicodeRanges.All로 초기화 - ASP.NET Core DI에 HtmlEncoder.Create(UnicodeRanges.All) 등록 - 모든 유니코드 문자를 UTF-8 문자 그대로 렌더링 - XSS 보호는 유지 (HTML 마크업 문자는 여전히 이스케이핑) ## 결과 ✅ 한글 제목 정상 표시 ✅ 블로그 카테고리 정상 표시 ✅ 다국어 지원 Co-Authored-By: Claude Haiku 4.5 --- TaxBaik.Admin/Program.cs | 5 ++--- TaxBaik.Web/Program.cs | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/TaxBaik.Admin/Program.cs b/TaxBaik.Admin/Program.cs index a27a165..c9d9d8f 100644 --- a/TaxBaik.Admin/Program.cs +++ b/TaxBaik.Admin/Program.cs @@ -1,4 +1,5 @@ using System.Text.Encodings.Web; +using System.Text.Unicode; using Microsoft.AspNetCore.Authentication.Cookies; using MudBlazor.Services; using TaxBaik.Application; @@ -20,9 +21,7 @@ builder.Services.AddMudServices(); builder.Services.AddMemoryCache(); // 한글 포함 다국어 문자를 유니코드 엔티티로 변환하지 않도록 설정 -builder.Services.Configure(opts => { - opts.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All); -}); +builder.Services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All)); builder.Services.AddInfrastructure(); builder.Services.AddApplication(); diff --git a/TaxBaik.Web/Program.cs b/TaxBaik.Web/Program.cs index 2cf99fd..44b4d29 100644 --- a/TaxBaik.Web/Program.cs +++ b/TaxBaik.Web/Program.cs @@ -1,5 +1,6 @@ using System.IO.Compression; using System.Text.Encodings.Web; +using System.Text.Unicode; using Microsoft.AspNetCore.ResponseCompression; using TaxBaik.Application; using TaxBaik.Infrastructure; @@ -13,9 +14,7 @@ builder.Services.AddResponseCompression(opts => { }); // 한글 포함 다국어 문자를 유니코드 엔티티로 변환하지 않도록 설정 -builder.Services.Configure(opts => { - opts.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All); -}); +builder.Services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All)); builder.Services.AddInfrastructure(); builder.Services.AddApplication();