본문 바로가기
Programming/.NET

[ASP.NET] Inline Expression

by 째스터 2018. 10. 25.
728x90

얼마 전 제품에 사소한 문제가 발견됐습니다.

독일어 제품에서 Ü가 Ü로 나타나는 문제였는데요.

원인은 바로 .NET 프레임워크의 Inline Expression이었습니다.

 

리소스 작업이 되어있어서 아래 예시와 같이 사용하고있었습니다.

var string1 = "<%: getResourceText("happy") %>"​
happy라는 string을 locale별로 가져와서 사용하고 있었습니다.

그런데 독일어로 happy는 'Glück'이었고 Gl

&#252;ck로 

ü의 HTML Code인 &#252; 때문에 문제가 발생했습니다.

 

<%= ... %>는 문자열을 보여주는 가장 간단한 Inline Expression입니다.

<%: ... %> 또한 문자열을 보여주는 Inline Expression입니다.

하지만 <%: ... %><%= ... %>에서 HTML Encoding된 문자열을 나타냅니다.

 

페이지 내에서 문자열을 보여줄 때는 차이가 없었지만 스크립트 영역에서 변수로 할당할 때 

<%: ... %>일때 string1은 "Gl

&#252;ck" 으로

<%= ... %>일때 string1은 'Glück" 으로 할당되게 됩니다.

따라서 스크립트 영역에서 변수로 사용할 때는 아래와 같이 <%= ... %>으로 바꿔서 해결했습니다.

var string1 = "<%= getResourceText("happy") %>"
728x90

'Programming > .NET' 카테고리의 다른 글

Azure Blazor Server 배포하기  (0) 2021.09.03
AWS EC2 Ubuntu Blazor Server 배포  (2) 2021.08.27
Web.Config Timeout  (0) 2021.05.26
[ASP.NET] Inline Expression  (0) 2018.10.26
[ASP.NET] resource 파일(.resx) 만들기  (0) 2018.09.23

댓글