티스토리 뷰

WAS를 톰캣으로 사용할 경우
기본적으로 url에 한글이나 특수기호, 띄어쓰기가 있을 경우 제대로 적용이 안 되는 경우가 있다.


가끔 <a href="http://서버:8080/파일명.zup">파일다운로드</a> 등등 url을 적용할때 한글등이끼는 경우가 있을 것이다.


이럴때 기본 설정의 톰캣을 제대로 파일을 찾아내거나 url을 병신으로 만들 것이다.

기본적으로 한글이나 특수기호등이 포함된 url을 주소창에 입력하고 엔터키를 누르면
한글부분이 이상한 문자로 변경되면서 파일을 찾지 못한다고 에러를 내는 경우가 있을 것이다.

난 반드시 그 url을 사용해야 하는데 답답하다...

<예>

http://localhost:8181/flexsv/flex/멍멍.swf이라는 url을 이용해서 플래시 파일을 웹브라우저에 보이게 하고 싶다. 하지만 주소창에 위의 주소를 입력하면 아래처럼 변경되면서 못 찾는다고 한다.

지랄~

http://localhost:8181/flexsv/flex/%EB%A9%8D%EB%A9%8D.swf


만약 이럴 경우 한글이나 특수기호를 utf-8로 인코딩한 후 , was의 설정을 utf-8을 사용할 수 있도록

변경하고 재시작 하면 된다.


톰캣같은 경우

server.xml에서 port="8181" <--본인의 포트번호로 검색해보길...

가 포함된 <Connector 로 시작하는 줄에 URIEncoding="utf-8"을 추가하고 재시작을 한다.

그리고 한글로 된 멍멍.swf를 utf-8로 변경한 값을 url에 대입하면 된다.

즉, http://localhost:8181/flexsv/flex/%EB%A9%8D%EB%A9%8D.swf 이런식으로 주소창에 입력하

면 멍멍.swf라는 파일이 웹브라우저에 실행되는 것을 볼 수 있을 겻이다.

utf-8로 변경하는 방법은 아래와 같다.
String filename2 = java.net.URLEncoder.encode(filename, "UTF8");


만약 본인이 jsp에서 꼭 euc-kr로 진행하고 싶다면...

server.xml에 URIEncoding="euc-kr"을 추가하고

파일명은 String filename1 = java.net.URLEncoder.encode(filename,"euc-kr"); 형식으로 변경해서

적용하면 될 것이다.


참고로 멍멍.swf를 변경할 경우

String filename1 = java.net.URLEncoder.encode(filename,"euc-kr"); => %B8%DB%B8%DB.swf
String filename2 = java.net.URLEncoder.encode(filename, "UTF8"); => %EB%A9%8D%EB%A9%8D.swf

이렇게 변환된다. 비슷하면서도 다르다.