Page 1 of 1
&에 amp;를 왜 붙여야 하나요?
Posted: 2006 02 27 13:12 36
by Tyburn
제 사이트의 표준화 작업을 하면서 &에 amp;를 붙여야 한다는 것을 알게 되었습니다.
(w3c 검사기에서 자꾸 이 부분을 오류로 인식하더군요.)
그런데 amp;를 달건 말건 보는데는 아무런 지장이 없고, 어떤 브라우저로 봐도 오류가 나거나 그런 일은 없는데 amp;를 달아서 얻는 효과가 무엇인지 알수가 없네요.
amp;를 달았을 때와 달지 않았을 때의 차이점이 무엇인지 궁금합니다.
Posted: 2006 02 27 13:25 17
by Channy
Posted: 2006 02 27 13:27 26
by eouia
&, <, >등은 HTML에서 특별히 예약된 기호입니다. 물론 똑똑한 브라우저들은 이러한 기호들을 알아서 잘 파싱해서 보여주기도 합니다.
그러나 HTML문서는 똑똑한 브라우저에서만 사용되는 것은 아닙니다. 똑똑하지 않은 브라우저들, 똑똑하지 않은 프로그램들, 똑똑하지 않은 기계들도 HTML을 애용하고 있습니다.
그러므로 HTML문서안에서 &, <, >등을 HTML기호가 아닌 "문자"로 사용할 때에는 그에 맞게 표기해줘야 합니다. 말씀하신 amp; 같은 것이요. (기억하실려나 모르겠는데, nbsp;와 그냥 공백의 차이도 같은 이유입니다.)
Posted: 2006 02 27 13:30 03
by bopy
&는 HTML 엔티티를 사용할 때 쓰기위한 문자입니다.
&를 쓰기 위해서는 &에 해당하는 엔티티를 사용해야 하는데 그것이 &인 것입니다.
공백문자에는 를 쓰고 <는 < 로 쓰는건 알고 계시지요?
엔티티에 대한건
http://trio.co.kr/webrefer/html/charset.html#h-5.3.2
nbsp와 white space는 좀 다릅니다
Posted: 2006 03 01 10:13 41
by 신승식
eouia wrote:(기억하실려나 모르겠는데, nbsp;와 그냥 공백의 차이도 같은 이유입니다.)
와 그냥 white space는 좀 다릅니다. 는 상당히 조심해서 써야 하는 게, 그걸로 채워진 스페이스는 줄바꿈이 되지 않습니다. 말 그대로 non-breakable space이기 때문입니다. 어떤 위지윅 에디터에서 사용자들이 입력한 스페이스를 모두 로 바꿔버리는 경우를 가끔 보는데, 그렇게 하면 줄바꿈이 되지 않고, 가로로 길게 늘어지는 줄이 생기기 때문에 큰일 납니다.
Posted: 2006 03 01 20:19 25
by alogblog
위 링크글은 약간 잘못 받아들일 가능성이 있는데, URL에서만 엠퍼센드를 엔티티 표현으로 풀어써야하는건 아니고, 일반 텍스트에서도 몽조리 다 엔티티로 표현해야 합니다.
여기서 "표현해야한다"라는 의미는 Tyburn님의 원질문이 w3c 벨리데이터를 기준으로 질문하셨기 때문입니다.
우리가 기존의 HTML에서 &는 그냥 엔티티 표현이 아닌 그 자체로 걍 써웠던것은,
브라우저가 지가 알고 잇는 &로 시작하는 몇몇의 제한된 엔티티가 아니면,
엔티티가 아니라 일반 문자로 취급해왔기때문에, 별 문제가 없었던겁니다.
물론 지금도 그렇게 처리하죠. 하지만 밸리데이터는 &를 무조건 엔티티의 시작을 알리는 표시로 인식합니다. 따라서
{a href="
http://example.com/q?a=b&c=d"}a
& b{/a} 같은 표현은
앞뒤 엠퍼센드 모두 밸리데이터에선 걸립니다.