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

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

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.