2007년 09월 10일
[TIPS]문서라이브러리에서 '링크를 포함시켜 전자메일 보내기'시 한글깨짐현상
MOSS 의 좋은 많은 기능들에도 불구하고 이따금씩 발생하는 불편한 사항들 때문에 맘이 상하는(ㅡㅡ;;)
경우가 종종 있다. 그중의 하나가 문서 라이브러리에서 '링크를 포함시켜 전자메일 보내기' 기능이다. 
문서라이브러리에 업로드된 파일이 영문파일이라면 사용시 아무런 문제가 없겠지만, 한글일 경우에는 100% 한글이 깨져서 나온다.
하지만 다행이도 이를 해결하기 위한 방법이 있다.
해결방법을 간략히 요약하자면, 첫번째로 '링크를 포함...' 을 클릭하였을 경우 실행되는 자바스크립트 함수를 수정해야 하며, 두번재로는 클라이언트의 아웃룩 설정을 수정해야 한다.
그럼 첫번째로 서버의 자바스크립트 파일을 수정해 보자.
우선 페이지에서 '링크를 포함시켜...' 기능이 포함되어 있는 자바스크립트 파일은 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1042 하위의 INIT.JS 파일이다. 이 파일을 편집기로 열어서 navigateMailToLink 라는 함수를 찾는다. 이 함수에서 아래와 같이 수정하도록 한다.
{ // strUrl= strUrl.replace(/%20/g," ").replace(/%2E/g,"."); var strEncoded=""; for (ix=0; ix < strUrl.length; ix++) { var curChar=strUrl.charAt(ix); var strHexCode; var strHexCodeL; if (curChar=='%') { strHexCode=strUrl.charAt(ix+1); strHexCode+=strUrl.charAt(ix+2); strHexCodeL=strHexCode.toLowerCase(); if (strHexCodeL=="3a" || strHexCodeL=="2f" || strHexCodeL=="3d") { strEncoded+=curChar; } else { strEncoded+=curChar; strEncoded+="25"; } } else { // strEncoded+= encodeURI(curChar); } } window.location=strEncoded; } |
위의 navigateMailToLink 함수에서 세번째줄 에 추가된 strUrl= strUrl.replace(/%20/g," ").replace(/%2E/g,"."); 는 URL 인코딩된 파일이름에서 %20 이나 %2E 이 있을 경우 이를 공백이나, "." 로 바꿔주는 부분이다.
그리고 마지막 부분에 수정된 strEncoded+= encodeURI(curChar); 은 UTF-8 인코딩으로 바꿔서 저장하는 부분이다.
여기까지가 서버에서 수정해줘야하는 부분이며, 두번째로 사용자 PC의 Outlook의 설정을 변경해야 한다.(여기서는 Outlook 2007 을 예로 들도록 하겠다)
우선 아웃룩을 실행하여 도구 -> 옵션 -> 메일 포맷탭의 국가별 옵션 버튼을 클릭한다.

국가별 옵션 설정 창에서 mailto:프로토콜에서 UTF-8지원사용 을 선택하고 확인을 클릭한다.
실제로 해보면 작업은 대단히 간단하다. 허나 이를 실제 운영환경에 적용하려 한다면 반드시 테스트를 거치고 적용하기 바란다
# by | 2007/09/10 13:30 | SharePoint | 트랙백 | 덧글(2)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]