숫자 문자 참조
Numeric character reference이 기사는 대체로 또는 전적으로 단일 출처에 의존한다. – · · 책 · · (2021년 2월) |
NCR(숫자 문자 참조)은 SGML과 SGML에서 파생된 HTML, XML과 같은 마크업 언어에서 사용되는 일반적인 마크업 구조로, 차례로 단일 문자를 나타내는 짧은 시퀀스의 문자로 구성된다.WebSgml, XML, HTML 4 이후 유니코드의 유니버설 문자 집합(UCS)의 코드 포인트가 사용된다.NCR은 일반적으로 특정 문서에서 직접 인코딩할 수 없는 문자를 나타내기 위해 사용된다(예: 사용 중인 8비트 문자 집합에 맞지 않는 국제 문자 또는 언어에서 특별한 구문적 의미를 가지기 때문에).문서가 마크업 인식 리더에 의해 해석될 때, 각 NCR은 그것이 나타내는 문자인 것처럼 취급된다.
예
SGML, HTML, XML에서 다음은 모두 그리스 대문자 시그마(Sigma)에 대한 유효한 숫자 문자 참조다.
유니코드 문자 | 수치기준 | 마크업에서의 수치 참조 | 효과 |
---|---|---|---|
U+03A3 | 십진법 | Σ | Σ |
U+03A3 | 십진법 | Σ | Σ |
U+03A3 | 16진법 | Σ | Σ |
U+03A3 | 16진법 | Σ | Σ |
U+03A3 | 16진법 | Σ | Σ |
SGML, HTML 및 XML에서 다음은 모두 라틴 대문자 AE에 대한 유효한 숫자 문자 참조문자 입니다.
유니코드 문자 | 수치기준 | 마크업에서의 수치 참조 | 효과 |
---|---|---|---|
U+00C6 | 십진법 | Æ | Æ |
U+00C6 | 16진법 | Æ | Æ |
SGML, HTML, XML에서 다음은 라틴어 작은 글자 sharp s에 대한 모두 유효한 숫자 문자 참조문자 참조문자 입니다.
유니코드 문자 | 수치기준 | 마크업에서의 수치 참조 | 효과 |
---|---|---|---|
U+00DF | 십진법 | ß | ß |
U+00DF | 16진법 | ß | ß |
인쇄 가능한 ASCII 문자에 대한 숫자 문자 참조 목록:
유니코드 문자 | 캐릭터 참조 (iii) | 캐릭터 참조 (10진수) | 효과 |
---|---|---|---|
U+0020 |   |   | (공간) |
U+0021 | ! | ! | ! |
U+0022 | " | " | " |
U+0023 | # | # | # |
U+0024 | $ | $ | $ |
U+0025 | % | % | % |
U+0026 | & | & | & |
U+0027 | ' | ' | ' |
U+0028 | ( | ( | ( |
U+0029 | ) | ) | ) |
U+002A | * | * | * |
U+002B | + | + | + |
U+002C | , | , | , |
U+002D | - | - | - |
U+002E | . | . | . |
U+002F | / | / | / |
U+0030 | 0 | 0 | 0 |
U+0031 | 1 | 1 | 1 |
U+0032 | 2 | 2 | 2 |
U+0033 | 3 | 3 | 3 |
U+0034 | 4 | 4 | 4 |
U+0035 | 5 | 5 | 5 |
U+0036 | 6 | 6 | 6 |
U+0037 | 7 | 7 | 7 |
U+0038 | 8 | 8 | 8 |
U+0039 | 9 | 9 | 9 |
U+003A | : | : | : |
U+003B | ; | ; | ; |
U+003C | < | < | < |
U+003D | = | = | = |
U+003E | > | > | > |
U+003F | ? | ? | ? |
U+0040 | @ | @ | @ |
U+0041 | A | A | A |
U+0042 | B | B | B |
U+0043 | C | C | C |
U+0044 | D | D | D |
U+0045 | E | E | E |
U+0046 | F | F | F |
U+0047 | G | G | G |
U+0048 | H | H | H |
U+0049 | I | I | I |
U+004A | J | J | J |
U+004B | K | K | K |
U+004C | L | L | L |
U+004D | M | M | M |
U+004E | N | N | N |
U+004F | O | O | O |
U+0050 | P | P | P |
U+0051 | Q | Q | Q |
U+0052 | R | R | R |
U+0053 | S | S | S |
U+0054 | T | T | T |
U+0055 | U | U | U |
U+0056 | V | V | V |
U+0057 | W | W | W |
U+0058 | X | X | X |
U+0059 | Y | Y | Y |
U+005A | Z | Z | Z |
U+005B | [ | [ | [ |
U+005C | \ | \ | \ |
U+005D | ] | ] | ] |
U+005E | ^ | ^ | ^ |
U+005F | _ | _ | _ |
U+0060 | ` | ` | ' |
U+0061 | a | a | a |
U+0062 | b | b | b |
U+0063 | c | c | c |
U+0064 | d | d | d |
U+0065 | e | e | e |
U+0066 | f | f | f |
U+0067 | g | g | g |
U+0068 | h | h | h |
U+0069 | i | i | i |
U+006A | j | j | j |
U+006B | k | k | k |
U+006C | l | l | l |
U+006D | m | m | m |
U+006E | n | n | n |
U+006F | o | o | o |
U+0070 | p | p | p |
U+0071 | q | q | q |
U+0072 | r | r | r |
U+0073 | s | s | s |
U+0074 | t | t | t |
U+0075 | u | u | u |
U+0076 | v | v | v |
U+0077 | w | w | w |
U+0078 | x | x | x |
U+0079 | y | y | y |
U+007A | z | z | z |
U+007B | { | { | { |
U+007C | | | | | - |
U+007D | } | } | } |
U+007E | ~ | ~ | ~ |
토론
마크업 언어는 일반적으로 UCS 또는 유니코드 문자로 정의된다.즉, 문서는 가장 기본적인 수준의 추상화 수준으로 구성되며, 문자는 어떤 인코딩에도 독립적으로 존재하는 추상적인 단위다.
이상적으로 마크업 언어를 활용하는 문서의 문자가 비트 시퀀스로 네트워크를 통한 저장이나 전송을 위해 인코딩되는 경우, 사용되는 인코딩은 유니코드 전체는 아니더라도 문서의 모든 문자를 특정 비트 시퀀스로 직접 표현하는 것을 지원하는 인코딩이 될 것이다.
그러나 때때로, 편리성의 이유나 기술적 한계 때문에, 문서는 일부 문자를 직접 나타낼 수 없는 인코딩으로 인코딩된다.예를 들어 ISO 8859에 기반하여 널리 사용되는 인코딩은 기껏해야 256개의 고유 문자만 8비트 바이트로 나타낼 수 있다.
실제로 문서들은 내부적으로 두 개 이상의 인코딩을 사용하는 것이 거의 허용되지 않기 때문에, onus는 보통 문서 작성자들이 암호화할 수 없는 문자들을 표현할 수 있는 수단을 제공하기 위해 마크업 언어에 있다.이것은 일반적으로 일종의 "탈출" 메커니즘을 통해 이루어진다.
SGML 기반 마크업 언어는 문서 작성자가 ASCII 범위(유니코드의 최초 128 코드 포인트)에서 나온 문자의 특별한 시퀀스를 사용하여 문서의 인코딩에서 직접 사용할 수 있는지 여부에 관계없이 모든 유니코드 문자를 나타내거나 참조할 수 있도록 한다.이러한 특수 시퀀스는 문자 참조 자료다.
참조된 문자의 UCS 또는 유니코드 코드 포인트를 기반으로 하는 문자 참조를 숫자 문자 참조라고 한다.HTML 4와 XHTML 및 XML의 모든 버전에서 코드 포인트는 십진수(베이스 10) 번호 또는 16진수(베이스 16) 번호로 표현할 수 있다.구문은 다음과 같다.
문자 U+0026(암페르샌드), 문자 U+0023(숫자 기호) 순으로 다음 중 하나를 선택하십시오.
- 하나 이상의 소수점 0(U+0030) ~ 9(U+0039) 또는
- 문자 U+0078("x") 이후 0(U+0030) ~ 9(U+0039), 라틴 대문자 A(U+0041) ~ F(U+00466) 및 영문 소문자 a(U+0061) ~ f(U+0066)의 16진수 이상 숫자;
뒤에 모두 U+003B(세미콜론) 문자가 온다.이전 버전의 HTML에서는 16진수 구문을 허용하지 않았다.
숫자 문자 참조를 구성하는 문자는 오늘날 컴퓨팅과 통신에서 사용되는 모든 문자 부호화에 표현될 수 있으므로 참조 자체가 코드화될 위험은 없다.
문자 도면요소 참조라고 하는 또 다른 종류의 문자 참조가 있는데, 이를 통해 문자는 숫자 대신 이름으로 참조할 수 있다.(문자의 이름을 붙이면 문자 도면요소가 생성된다.)HTML은 일부 문자 엔티티를 정의하지만 많지는 않다. 다른 모든 문자는 직접 인코딩이나 NCR을 사용하여만 포함될 수 있다.
제한사항
ISO 10646에 의해 정의된 범용 문자 집합은 SGML, HTML 4의 "문서 문자 집합"이므로 기본적으로 이러한 문서의 문자 및 해당 문서에서 참조되는 문자는 UCS에 있어야 한다.
SGML의 구문은 다음과 같이 유효하지 않거나 할당되지 않은 코드 포인트에 대한 참조를 금지하지 않는다.
, HTML과 XML과 같은 SGML에서 파생된 마크업 언어는 문자에 할당된 코드 포인트로만 숫자 문자 참조를 제한할 수 있으며, 종종 제한한다.
제한은 다른 이유로도 적용될 수 있다.예를 들어 HTML 4에서는
는, 양식 피드 문자를 사용할 수 있기 때문에, 비고정 "양식 피드" 제어 문자에 대한 참조로 허용된다.그러나 XML에서 양식 피드 문자는 참조로도 사용할 수 없다.[1][citation needed]또 다른 예로,€
다른 제어 문자에 대한 참조인 는 HTML이나 XML에서 사용되거나 참조될 수 없지만, HTML에서 사용될 경우 웹 브라우저에 의해 일반적으로 오류로 플래그가 지정되지 않으며, 이 중 일부는 호환성을 이유로 Windows-1252 인코딩에서 코드 값 128로 대표되는 문자에 대한 참조로 해석된다.이 문자 "€"는 다음과 같이 표현되어야 한다.€
표준 규격의 HTML 코드로.추가 예로서, 2000년 10월 6일 XML 1.0 Second Edition이 발행되기 전에 XML 1.0은 이전 버전의 ISO 10646에 기초하여 문자 데이터를 제외하고 U+FFFD 이상의 문자를 사용하는 것을 금지하여 다음과 같은 참조를 하였다.𐀀
(U+10000) 불법.XML 1.1 및 XML 1.0의 최신 버전에서는 사용 가능한 문자 레퍼토리가 명시적으로 확장되었기 때문에 이러한 참조가 허용된다.
마크업 언어는 문자 참조가 발생할 수 있는 위치에도 제한을 가한다.
호환성 문제
SGML과 HTML의 초기 버전에서 숫자 문자 참조는 유니코드가 아닌 문서 문자 인코딩과 관련하여 해석되었다.라틴 스크립트 문서의 경우, 해당 문서에서 x80과 x9F 사이의 문자에 대한 숫자 문자 참조는 유니코드에 대해 정확하지 않으며, 반드시 인코딩되어야 한다.HTML 4 이전의 HTML 표준은 서양의 라틴어 스크립트 문서만을 지원했다: #7F 이상의 문자 참조의 처리는 응용 프로그램과 국가 협약에 따라 다를 수 있다.
예를 들어, 위에서 언급한 바와 같이 유로 부호 "€"에 대한 올바른 숫자 참조U+20AC
유니코드를 십진수일 때€
그리고 16진법€
그러나, HTML의 구식 구현을 지원하는 도구를 사용하는 경우,€
(CP-1252 코드 페이지의 Euro 기호) 또는¤
(ISO/IEC 8859-15의 Euro sign)이 작동할 수 있다.
또 다른 예로, 만약 일부 텍스트가 원래 맥로맨 문자 집합을 사용하여 생성되었다면, 왼쪽 큰따옴표'는 코드 포인트 xD2로 표현될 것이다.이는 UTF-8, ISO 8859-1 또는 CP-1252로 인코딩된 문서가 예상되는 시스템에서 제대로 표시되지 않으며, 여기서 이 코드 포인트는 문자 Ⅱ에 의해 점유된다.HTML 4 이상에서 "에 대한 올바른 숫자 참조는“
U+201C가 UCS 코드이기 때문이다.일부 시스템에서는 명명된 문자 참조 “
또한 이용할 수 있다.
참고 항목
참조
- ^ "HTML 5.2: 8. The HTML syntax". www.w3.org.