티스토리 뷰
버튼을 클릭하면 GET방식으로 데이터를 넘겨주는 팝업창을 만들던 와중에 한글이 깨지는 현상이 발생했습니다. encodeURIComponent(인코딩된 URI를 반환하는 함수)로 인코딩 과정을 거친 후 넘겼는데 이상한 제 3세계 문자가 나타났습니다. 그런데 같은 방식으로 제작 된 운영 서버에 있는 팝업은 한글이 정상적으로 나타났습니다. 뭐가 문제일까 싶어서 검색해 봤는데 로컬 서버로 사용하고 있는 Tomcat 문제였습니다. Tomcat이 HTML BODY는 UTF-8로 디코딩하기에 POST방식은 문제가 없는데 URI같은 경우는 ISO-8859-1로 디코딩하기에 문제가 발생하는 것이었습니다. 그래서 같은 방식으로 제작 된 운영 서버에 있는 팝업의 경우 서버로 웹로직을 사용하고 있었기 때문에 문제가 없었던 것입니다. 이를 해결하려면 server.xml의 설정을 바꿔주면 됩니다. server.xml에서 connector 부분을 보면
1 | <Connector connectionTimeout="20000" port="8095" protocol="HTTP/1.1" redirectPort="8443"/> | cs |
다음과 같이 되어 있는데, 여기에 아래와 같이 URIEncoding="UTF-8"을 추가해주면 됩니다.
1 | <Connector connectionTimeout="20000" port="8095" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/> | cs |
이렇게 변경해주면 제 3세계의 문자가 나타나지 않고 인코딩된 URI가 멀쩡하게 한글로 나오게 됩니다.
'IT > Etc' 카테고리의 다른 글
Hosts 적용이 안될 때 대처법 (0) | 2018.06.23 |
---|---|
Tomcat 서버 강제 종료 (0) | 2017.03.26 |
Eclipse plugin- Word wrap (0) | 2017.03.26 |
Eclipse 단축키 (0) | 2017.03.26 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday