웹개발 중에 따옴표 처리 문제..

MySql 쿼리 처러하다 보니 따옴표 처리 이거 장난 아니구나~ ㅜㅜ
특히 이중 따옴표 처리.. ㅜㅜ.. 이것때메 어찌나 헤맷떤지..
이게 지금 이번뿐이 아니다.. 작년에도 이와 비슷한 문제로 좀 고생했는데…

그때는 쿼트나 떠블쿼트 전부 찾아서 다른문자로 replace 해서 DB로 저장하고, 불러들일때 다시 파싱해서 처리했떤 기억이 있다.

좀 찾아보니..  XML에는 CDATA 와 PCDATA 라는게 있더군..
암튼 난 그래서, 따옴표(“) 를 –> " 로 바꿔서 처리했다..
<a onclick=’comment_lists_toggle(&quot;”+rs.getString(6)+”&quot;, “+rs.getString(5)+”); return false;’ href=’./comment’> 댓글(“+rs.getString(3)+”) </a>

그렇다면, 과연 CDATA와 PCDATA 라는게 멀까?..
PCDATA(Parsed  Character DATA)는 말 그대로 파서가 해석하는 문자 데이타를 말한다.
쉽게 말하면, XML 문서를 브라우저가 읽을때, 브라우저 XML 파서가 문자열을 해석해서 디스플레이를 한다는 것이다.

예로들면, 아래와 같은

<title> XML &amp; JAVA </title>

XML 은  파서가 해석해서 <title> XML & JAVA </title> 로 치환하여 디스플레이 하는것이다.

그렇다면, CDATA 는 먼가?
CDATA는 XML 파서가 해석하지 않고 바로 Application 으로 보내버린다.

즉, <![CDATA[ 문자 데이타 ]]> 요렇게 섹션을 지정하면 안쪽의 문자 데이터는 파서가 해석을 안한다.
게시판에서 특수문자를 허용하는 경우엔 요렇게 CDATA로 묶어서 처리하면 된다.

특수문자를 정리하면 아래와 같다.

< –> &lt;       ex) 3 < 5  –> 3 &lt;  5
> –> &gt;      ex) 5 > 3  –> 5 &gt; 3
& –> &amp;   ex)<title>XML & Java</title>
                                  –><title>XML &amp; Java</title>
”  –> &quot;  ex)<book kind=”computer”>
                                  –><book kind=”&quot;computer&quot;”>
‘   –> &apos;  ex)<book kind=’rhmye’s book’>
                                  –><book kind=’rhyme&apos;s book’>

XML 에서 문자 참조를 할때는 10진수와 16진수를 구별해서 쓸때도 있다.
XML 문법은 간단하다. 

&#x(16진수 코드값);
&#(10진수 코드값);

스페이스 – 16진수: &#x20;    10진수: &#32;
  탭 – 16진수: &#x9   10진수: &#9;

———————– updated 2008.02.25 ————————
검색하다 찾아냈다..
그밖에 특수문자 , Escape Sequences

음… 찾은거 중엔.. 이곳이 가장 잘 정리 되어 있다!!
http://www.hybridelephant.com/computer/tutorial/spechar.html

홈페이지 놀이에 빠지다..

지난 이틀동안,.. 귀차니즘을 이겨내고..

세번째 소모임 홈페이지 개발을 시작했다.
전역하고 2006년에 한번 개편하고, 2년만에 다시 맹그는거 같다..
2006년엔, 첨 하는 거라서 참으로 허술하게 맹글었는데.. 그냥 제로보드 홈페이지였지..ㅎㅎ
이번 개발은 웹표준 이슈도 있고 해서, 크로스브라우징을 최대 목표로 하고 있다.
요새 한창 빠져버린 자바스크립트 +_+_+_+_+
어찌나 재밌는지..ㅋㅋㅋ
카피엔 페이스트가 기본인 스크립터에서 이번에 기초 ajax 라이브러리 빼고는 전부 날코딩하고있다.
템플릿도 없이 먼가 좀 무식하게 하는거 같은데.. 머 아직은 개발 초기단계니까.. ㅋㅋㅋ
좀 페이지가 많아지면 템플릿을 나눠야겠다..
이번에 개발할때는 루비로 할려고했는데,..
호스팅할 서버가 없어서..
걍 JSP로 고고싱~!!
아~ Wiki나 설치해야겠다..

JavaScript 크로스 도메인 문제..

크로스 도메인 문제로 검색을 타고 들어오는 분들이 많아..
제가 낚시글을 올린것 같아 따로 정리합니다.
아랫글은 너무 오래된 글이라서.. ㅇㅎㅎ
아래 링크에서 정리하도록 하죠..
——

지난 짬뽕나 프로젝트 기간동안 내내 문제를 일으켜온 크로스 도메인 문제…
일단 이 부분을 내가 맡은 파트가 아니라서 잠시 접어두고 있었는데…

오늘 찬찬히 소스 코드를 디벼보았다..

일단 자바스크립트에서 크로스 도메인 문제란,.. 보안과 직결된다..
자세한 내용은 크로스 도메인으로 검색해보면 나올것이고…

내가 오늘 해결한 방법부터 정리하면…
브라우저에 따라 2가지가 있겠다..

먼저 인터넷 익스플로러.. !! 크로스 도메인 문제를 체크하기전에 먼저 체크해야할게 있다..
바로 인터넷 옵션 – 보안 – 사용자 지정 수준 – 도메인 간의 데이타 소스 엑세스!!!
바로 요부분이다. 이게 IE 에서 디폴트로 사용안함으로 되어 있기때문에..

OpenAPI 로.. 특히 자바스크립트로 먼가를 할때.. 자꾸 접근제한 에러가 생긴다..
정확히 말하면,.. Ajax에선 XMLHttprequest 객체를 선언하고.. 이 객체의 Open() 메쏘드를 호출할때..
바로 이 접근 제한 문제가 발생한다..

은근히 해결책은 간단했다.. 오늘 정말 4시간동안.. 소스코드 분석하고.. GWT로 작성된거 ASP.NET 예제코드로 바꿔서 테스트해보고.. 쌩쑈를 한 기분이다. 그런데 결론은 ㅎㅎㅎ 삽질 삽질 삽질…. 하는 소리가 들리는군….

바로 IE 저 도메인 간 데이타 소스 엑세스를 사용안함에서 사용 이나 확인 으로 바꿔만 주면 되는것이었다..젠장..ㅜㅜ.. OTL ….난 왜, 또 삽질을 한것이더냐..ㅎㅎㅎ 삽질은 디버깅의 어머니라고 누가 말했떠냐.ㅎㅎㅎ

옵션에서 “사용함”보다는 “확인”을 권장한다.. 사용으로 해놓으면.. 브라우져로 서핑할때 마다 이상한 코드 저절로 다운받아서 실행하게 될찌 아무도 모르기 때문에… 확인으로 하는것을 적극 권장한다..
그럼 실제 OpenAPI로 호출했을때.. 접근권한 경고 메시지를 보게 될것이다..
가비~얍게… 확인 눌러주시고.. 다시해보면.. 잘 된다..ㅋㅋㅋ

반면 파이어폭스는 여러책을 참조한 결과.. 보안정책이 달라서..
보안메니져를 직접 호출해야한다고 하넹..-_-
요부분은 나중에 좀더 공부해서 정리해봐야겠땅..

오늘은 여까지.. 나랑 비슷한 문제를 가진사람들 제발 삽질을 안했으면 하는마음으로…작성했다..ㅎㅎ