Sayısal karakter referansı - Numeric character reference

Bir sayısal karakter referans ( NCR ), ortak bir biçimlendirme kullanılan yapı , SGML ve bu şekilde SGML türetilmiş biçimlendirme dilleri HTML ve XML . Sırasıyla tek bir karakteri temsil eden kısa bir karakter dizisinden oluşur . Yana WebSgml , XML ve HTML 4 , kod noktaları Evrensel Karakter Seti arasında (UCS) Unicode kullanılmaktadır. NCR'ler tipik olarak belirli bir belgede doğrudan kodlanamayan karakterleri temsil etmek için kullanılır (örneğin, kullanılan 8 bitlik karakter kümesine uymayan uluslararası karakterler olduklarından veya dilim). Belge, biçimlendirmeye duyarlı bir okuyucu tarafından yorumlandığında, her NCR, temsil ettiği karaktermiş gibi ele alınır.

Örnekler

SGML, HTML ve XML'de, aşağıdakilerin tümü Yunanca büyük harf Sigma için geçerli sayısal karakter referanslarıdır.

U+03A3 Σ YUNAN BÜYÜK HARF SIGMA'nın sayısal karakter referansı (
3A3 16 = 931 10 olduğuna dikkat edin )
Unicode karakter sayısal taban İşaretlemede sayısal referans Etki
U+03A3 Ondalık Σ Σ
U+03A3 Ondalık Σ Σ
U+03A3 onaltılık Σ Σ
U+03A3 onaltılık Σ Σ
U+03A3 onaltılık Σ Σ

SGML, HTML ve XML'de, aşağıdakilerin tümü Latin büyük harfi AE için geçerli sayısal karakter referanslarıdır.

U+00C6'nın sayısal karakter referansı Æ LATIN BÜYÜK HARF AE
Unicode karakter sayısal taban İşaretlemede sayısal referans Etki
U+00C6 Ondalık Æ Æ
U+00C6 onaltılık Æ Æ

SGML, HTML ve XML'de, aşağıdakilerin tümü Latin küçük harfi keskin s ß ​​için geçerli sayısal karakter referanslarıdır.

U+00DF ß LATIN KÜÇÜK HARF SHARP S'nin sayısal karakter referansı
Unicode karakter sayısal taban İşaretlemede sayısal referans Etki
U+00DF Ondalık ß ß
U+00DF onaltılık ß ß

Yazdırılabilir ASCII karakterleri için sayısal karakter referanslarının listesi :

Unicode karakter Karakter
Referansı
(ondalık)
Karakter
Referansı
(onaltılık)
Etki
U+0020 (Uzay)
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 NS
U+0045 E E E
U+0046 F F F
U+0047 G G G
U+0048 H H H
U+0049 I I ben
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 Ö
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 sen
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 NS
U+0065 e e e
U+0066 f f F
U+0067 g g G
U+0068 h h H
U+0069 i i ben
U+006A j j J
U+006B k k k
U+006C l l ben
U+006D m m m
U+006E n n n
U+006F 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 sen
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 ~ ~ ~

Tartışma

İşaretleme dilleri tipik olarak UCS veya Unicode karakterleri olarak tanımlanır. Yani bir belge, en temel soyutlama düzeyinde, herhangi bir kodlamadan bağımsız olarak var olan soyut birimler olan bir dizi karakterden oluşur .

İdeal olarak, bir biçimlendirme dili kullanan bir belgenin karakterleri, bir ağ üzerinden bir bit dizisi olarak depolama veya iletim için kodlandığında, kullanılan kodlama, belgedeki her bir karakteri temsil etmeyi destekleyen bir kodlama olacaktır. Unicode'un tamamı, doğrudan belirli bir bit dizisi olarak.

Ancak bazen kolaylık veya teknik sınırlamalar nedeniyle, belgeler bazı karakterleri doğrudan temsil etmeyen bir kodlamayla kodlanır. Örneğin, ISO 8859'a dayalı yaygın olarak kullanılan kodlamalar , her biri bir 8 bit bayt olarak yalnızca en fazla 256 benzersiz karakteri temsil edebilir .

Uygulamada, belgelerin dahili olarak birden fazla kodlama kullanmasına nadiren izin verilir, bu nedenle belge yazarlarının kodlanamayan karakterleri kodlanabilir olanlar cinsinden ifade etmeleri için bir araç sağlamak için sorumluluk genellikle biçimlendirme dilindedir. Bu genellikle bir tür "kaçma" mekanizmasıyla yapılır .

SGML tabanlı işaretleme dilleri belge yazarları ASCII aralığının (Unicode ilk 128 kod puan) temsil etmek veya karakterlerin özel dizileri kullanmasına izin referans doğrudan kullanılabilir bakılmaksızın karakter temsil edilmek bakılmaksızın, herhangi bir Unicode karakteri, belgenin kodlaması. Bu özel diziler karakter referanslarıdır .

Başvurulan karakterin UCS veya Unicode kod noktasına dayanan karakter başvurularına sayısal karakter başvuruları denir . HTML 4'te ve tüm XHTML ve XML sürümlerinde , kod noktası ondalık (temel 10) bir sayı veya onaltılık (taban 16) bir sayı olarak ifade edilebilir. Sözdizimi aşağıdaki gibidir:

U+0026 ( ve işareti ), ardından U+0023 ( sayı işareti ) karakteri , ardından aşağıdaki seçeneklerden biri gelir:

  • sıfırdan (U+0030) dokuza (U+0039) kadar bir veya daha fazla ondalık basamak; veya
  • U+0078 ("x") karakteri, ardından sıfır (U+0030) ila dokuz (U+0039) olan bir veya daha fazla onaltılık basamak, Latin büyük harf A (U+0041) ila F (U+0046), ve Latince küçük harf a (U+0061) ila f (U+0066);

tümünün ardından U+003B ( noktalı virgül ) karakteri gelir . HTML'nin eski sürümleri, onaltılık sözdizimine izin vermiyordu.

Sayısal karakter referansını oluşturan karakterler, günümüzde bilgi işlem ve telekomünikasyonda kullanılan her karakter kodlamasında gösterilebilir, bu nedenle referansın kendisinin kodlanamaz olma riski yoktur.

Bir karaktere sayı yerine bir adla atıfta bulunulmasına izin veren, karakter varlık referansı adı verilen başka bir karakter referansı türü vardır . (Bir karakter adlandırma bir oluşturur karakter varlık .) HTML bazı karakter öğelerinin, ama çok değil tanımlar; diğer tüm karakterler yalnızca doğrudan kodlama veya NCR'ler kullanılarak dahil edilebilir.

Kısıtlamalar

ISO 10646 tarafından tanımlanan Evrensel Karakter Kümesi, SGML, HTML 4'ün "belge karakter kümesidir", dolayısıyla varsayılan olarak böyle bir belgedeki herhangi bir karakter ve böyle bir belgede başvurulan herhangi bir karakter UCS'de olmalıdır.

SGML sözdizimi, geçersiz veya atanmamış kod noktalarına referansları yasaklamasa da, &#xFFFF;HTML ve XML gibi SGML'den türetilen işaretleme dilleri, sayısal karakter referanslarını yalnızca karakterlere atanan kod noktalarına sınırlayabilir ve sıklıkla yapar.

Kısıtlamalar başka nedenlerle de geçerli olabilir. Örneğin, &#12;yazdırılmayan bir "form besleme" kontrol karakterine referans olan HTML 4'te, bir form besleme karakterine izin verildiğinden izin verilir. Ancak XML'de form besleme karakteri başvuru yoluyla bile kullanılamaz. Başka bir örnek olarak, &#128;başka bir kontrol karakterine referans olan , HTML veya XML'de kullanılmasına veya referans verilmesine izin verilmez, ancak HTML'de kullanıldığında genellikle web tarayıcıları tarafından bir hata olarak işaretlenmez - bazıları yorumlanır. uyumluluk nedenleriyle , Windows-1252 kodlamasında 128 kod değeriyle temsil edilen karaktere bir başvuru olarak . Bu karakter, "€", &#8364;standart uyumlu bir HTML kodunda olduğu gibi gösterilmelidir. Başka bir örnek olarak, 6 Ekim 2000'de XML 1.0 İkinci Baskı'nın yayınlanmasından önce, XML 1.0, ISO 10646'nın daha eski bir sürümüne dayanıyordu ve karakter verileri dışında U+FFFD'nin üzerindeki karakterlerin kullanılması yasaklandı, bu nedenle şöyle bir referans yapıldı: &#65536;(U+10000) yasadışı. XML 1.1 ve XML 1.0'ın daha yeni sürümlerinde, kullanılabilir karakter repertuarı açıkça genişletildiği için böyle bir referansa izin verilir.

İşaretleme dilleri ayrıca karakter referanslarının meydana gelebileceği yerlere kısıtlamalar getirir.

Uyumluluk sorunları

SGML ve HTML'nin ilk sürümlerinde , sayısal karakter referansları, Unicode yerine belge karakter kodlamasıyla ilişkili olarak yorumlandı . Latin alfabesi belgeleri için, bu belgelerdeki x80 ve x9F arasındaki karakterlere yapılan sayısal karakter başvuruları Unicode'a göre doğru olmayacaktır ve yeniden kodlanmalıdır . HTML 4'ten önceki HTML standartları, yalnızca Batı Latin alfabesi belgelerini destekler: #7F'nin üzerindeki karakter referanslarının ele alınması, uygulamalar ve ulusal sözleşmeler arasında değişiklik gösterebilir.

Örneğin, yukarıda belirtildiği gibi, Unicode kullanılırken Euro işareti "€" için doğru sayısal karakter başvurusu ondalık ve onaltılıktır . Ancak, HTML'nin eski uygulamalarını destekleyen araçlar kullanılıyorsa, referans ( Cp1252 kod sayfasında Euro ) veya ( ISO/IEC 8859-15'te Euro ) işe yarayabilir. U+20AC&#8364;&#x20AC;&#128;&#164;

Başka bir örnek olarak, orijinal olarak MacRoman karakter kümesi bazı metinler oluşturulmuşsa , sol çift tırnak işareti xD2 kod noktasıyla temsil edilecektir. Bu, UTF-8, ISO 8859-1 veya CP1252 olarak kodlanmış bir belge bekleyen ve bu kod noktasının Ò harfi tarafından işgal edildiği bir sistemde düzgün görüntülenmez . U+ 201C UCS kodu olduğundan , HTML 4 ve daha yeni sürümlerde için doğru sayısal karakter başvurusu 'dir . Bazı sistemlerde, adlandırılmış karakter referansı da mevcut olabilir. &#x201C; &ldquo;

Ayrıca bakınız

Referanslar