2009-06-19 5 views

답변

22

두 가지 주요한 것들.

  1. 현재 사용중인 문자 세트에서 정의되지 않은 문자를 사용할 수 있습니다. 예를 들어 합법적으로 ASCII를 charset으로 사용할 수 있으며 여전히 임의의 유니 코드 문자를 포함 할 수 있습니다.
  2. Simon이 지적한대로 HTML은 특별한 의미를 부여하는 문자를 인용 할 수있게합니다.
+0

3. 어떤 이유로 든 직접 입력 할 수없는 문자를 사용할 수 있습니다. 간단한 예로, 키보드에 "gräßlich"라는 단어를 입력 할 수는 없지만 "gr ä ß lich"를 입력하는 데 아무런 문제가 없습니다. 물론, 다른 곳에있는 "ä"와 "ß"라는 글자를 복사하여 붙여 넣을 수는 있지만, 편리하지는 않습니다. –

+2

RegDwight, 저는 그것을 고의로 떠났습니다. 키보드/OS로 입력하는 방법을 배우는 것이 좋으며, 필요하다면 복사하는 것이 좋습니다.불필요하게/엔티티가 가득 찬 페이지는 읽기가 어렵습니다. –

14

"1 &lt; 2"은 내 페이지에 "1 < 2"을 넣을 수있게합니다.

긴 대답 : HTML 이후

는 텍스트로 있음을 원하는 경우 그냥 '<'입력 할 수 없습니다, 태그를 여는 데 사용하는 '<'. 따라서 "내 페이지에 텍스트<을 넣고 싶습니다."라고 말할 수있는 방법이 있어야합니다. HTML (또는 실제로 SGML, HTML의 전임자)을 디자인 한 사람은 ''(접히지 않거나 줄 바꿈을 허용하는 공백) 같은 것을 넣을 수 있도록 '&무언가를;'으로 사용하기로 결정했습니다. . 물론 지금은 '&'이라고 말할 수있는 방법이 필요하므로 '&amp;'이 표시됩니다.

+1

+1 : 는 속성 안에 따옴표를 넣을 수 있음을 잊지 마십시오. –

+0

하지만 문제없이 " Hans

3

문자 엔티티는 .ex.ex.에 대한 HTML을 쓰기 위해 예약 된 문자를 나타내는 데 사용됩니다. <,>, /, & 등, 당신이 문자 엔티티를 사용한다 콘텐츠에 이러한 문자를 표현하려면

1

당신은 도움을 엔티티를 사용하는 내용과 마크 업을 구별에,이 파서 도움이 될 것입니다 구문 분석기는 문자가 HTML로 표시되어야하는지, 사용자에게 실제로 표시 할 것인지를 구분합니다. HTML은 자체에 대해 특수 문자 세트를 예약하기 때문입니다.

, 내가 >

는 "</풍자 >"태그가 사라집니다 그 </풍자처럼 의미하지 않는다 HTML

에 문자 그대로 타이핑

예 HTML과 같은 정의 된 태그가 없습니다 않는

나는 그

같은 의미하지 않는다. 이 경우 엔티티를 사용하면 텍스트가 올바르게 표시됩니다.

아니요, 정말로!& lt;/sarcasm & gt;

정말

없음 제공! </풍자

원하는대로.

7

이들은 &amp;, &lt;, &gt;, &quot; 및 아마도 &nbsp;과 떨어져 있지 않습니다. 다른 모든 문자의 경우 UTF-8 만 사용하십시오.

+0

실제로 '"'은 속성에만 필요합니다. –

4

SGML과 XML에서는 문자를위한 것이 아닙니다. 그것들은 일반적인 포함 메커니즘이며 특수 문자에 대한 사용은 많은 경우 중 하나 일뿐입니다. 그들은 XML 모드에서만 작동하고 브라우저 구성에서 "검증"구문 분석 모드를 사용하지 않고 외부 DTD 파일을 사용할 수 없기 때문에

<!ENTITY signature "<hr/><p>Regards, <i>&myname;</i></p>"> 
<!ENTITY myname "John Doe"> 

기관의이 종류는, 웹 사이트에 유용하지 않다.


엔티티는 재귀 적으로 확장 될 수 있습니다. 이를 통해 "Billion Laughs Attack"이라는 Serice 공격 거부에 XML을 사용할 수 있습니다. HTML에서

<!ENTITY hidemac.label "Hide &brandShortName;"> 
<!ENTITY hidewin.label "Hide - &brandShortName;"> 

그냥 필요 : 파이어 폭스 (무리와 IceWeasel의 삶을 쉽게하기 위해) 국제화와 브랜드 독립적 인 메시지 (XUL과 같은) 내부적 엔티티를 사용


&lt;, &amp;&quot;을 사용하면 텍스트와 마크 업 간의 모호성을 피할 수 있습니다.

다른 모든 엔티티는 기본적으로 유니 코드 인코딩에 의해 폐기되며 편의성 만 유지됩니다 (그러나 좋은 텍스트 편집기는이를 대체 할 수있는 매크로/스 니펫이 있어야합니다). 독립형 XML 파서와 함께 작동하지 않기 때문에


가 XHTML에서 기본적인 몇 가지를 제외한 모든 개체는 문제가있다 (예를 들어, &nbsp;이 작동하지 않습니다).

모든 XHTML 엔터티를 구문 분석하려면 유효성 검사 XML 구문 분석기 (일반적으로 "resolve externals"라고하는 옵션)가 느리고 DTD 카탈로그를 설정해야합니다. DTD 카탈로그를 무시하거나 망치면 DDoS of W3C servers에 참여하게됩니다.

+0

이 답변은 용어를 혼란스럽게합니다. 질문은 * name *, * external *, * parameter * 엔티티가 아닌 * character * 엔티티에 관한 것입니다. – kjhughes

관련 문제