2015년 11월 23일 월요일

C#, JavaScript : IE8 에서 Naver Smart Editor 로 이미지를 삽입할 때 "?" 가 끼어 들때.

무료 에디터로 많이 쓰이는게 네이버에서 제공해주는 스마트 에디터다.
무료로 제공을 해주니 고맙긴 하지만, 요즘엔 기술지원이 거의 없다 시피하다 보니, 문제가 발생 했을때 대처하기가 어렵다.

특히 Javascript 계열 에디터이다 보니 호환성에서 항상 많은 문제가 발생 되는데...
이번에는 이미지 업로드 부분이 문제가 생겼다.

크롬이나 IE9 이상에서는 문제가 없지만, XP 에서 IE8로 이미지를 첨부하면...


이렇게 이미지만 하나 삽입했을 뿐인데... 저장하고 그 페이지를 조회하면...


이렇게 이미지 끝에 "?" 표시가 하나 붙어 있다.
당연히 이미지 여러개를 삽입하면 이미지 마다 다 붙어 있다.

결론만 말해, 이건 IE8 이 표준을 지키지 않기 때문.
즉, 원래는 공백으로 인식 되어야할 코드가 그냥 에디터로 삽입되고 서버로 전송되고, 그 데이터가 DB에 저장될때 "?" 로 인식되어 저장되는 것.

원칙적으로는 SmartEditor 의 코드에서 수정해야 할 일이겠으나... 에디터 코어를 건드릴 능력은 안되므로 자체적으로 해결 한다.
그냥 DB에 저장하기 전에 문제가 되는 코드를 삭제 하면된다.


strTmpContent = this.Request["strContent"].ToString();
strTmpContent = strTmpContent.Replace("\uFEFF", "");
strTmpContent = strTmpContent.Replace("\u200B", "");

이렇게 문제가 되는 코드인 uFEFF, u200B 를 삭제 해주면 이미지 뒤에 "?" 가 붙지 않는다.