Windows kod sayfası - Windows code page

Windows kod sayfaları , 1980'ler ve 1990'lardan itibaren Microsoft Windows'ta kullanılan karakter veya kod sayfaları ( diğer işletim sistemlerinde karakter kodlamaları olarak bilinir) kümeleridir . Windows kod sayfaları, Windows'ta Unicode uygulandığında kademeli olarak yerini aldı , ancak bunlar hem Windows'ta hem de diğer platformlarda hala destekleniyor ve Alt kod kısayolları kullanıldığında hala geçerli .

Windows sistemlerinde iki grup sistem kodu sayfası vardır: OEM ve Windows'a özgü ("ANSI") kod sayfaları. Bu grupların her ikisindeki kod sayfaları , genişletilmiş ASCII kod sayfalarıdır. Ek kod sayfaları, standart Windows dönüştürme rutinleri tarafından desteklenir, ancak her iki tür sistem kodu sayfası olarak kullanılmaz.

ANSI kod sayfası

Windows-125x serisi
takma ad(lar) ANSI (yanlış isim)
Standart WHATWG Kodlama Standardı
uzatır ABD-ASCII
Öncesinde ISO 8859
tarafından başarıldı Unicode
UTF-16 (Win32 API'sinde)

ANSI kod sayfaları (Microsoft, eski terimin yanlış adlandırma olduğunu kabul ettikten sonra resmi olarak "Windows kod sayfaları" olarak adlandırılır ) , Windows sistemlerinde bir grafik kullanıcı arabirimi kullanan yerel Unicode olmayan (örneğin, bayt yönelimli ) uygulamalar için kullanılır . Bu Windows kod sayfaları herhangi bir ANSI standardına uymadığından "ANSI" terimi yanlış bir adlandırmadır ; kod sayfası 1252 , 32 kontrol kodu ve 96 yazdırılabilir karakter için alan ekleyen uluslararası standart ISO 8859-1 haline gelen erken bir ANSI taslağına dayanıyordu . Diğer farklılıkların yanı sıra, Windows kod sayfaları, ek kontrol kodu alanına yazdırılabilir karakterler tahsis eder, bu da onları en iyi durumda standartlara uygun işletim sistemleri tarafından okunaksız hale getirir.)

Çoğu eski "ANSI" kod sayfası, 125x düzeninde kod sayfa numaralarına sahiptir. Ancak, tümü OEM kod sayfaları olarak da kullanılan 874 (Tay dili) ve Doğu Asya çok baytlı "ANSI" kod sayfaları ( 932 , 936 , 949 , 950 ), benzer (ancak aynı olmayan) IBM ile eşleşecek şekilde numaralandırılmıştır. kodlamalar. İken kod sayfası 1258 de bir OEM kod sayfası olarak kullanılır, oldukça varolan kodlama bir uzantısı daha Microsoft'a orijinaldir. IBM, Microsoft'un türevleri için kendi farklı numaralarını atamıştır; bunlar, uygun olduğunda aşağıdaki listelerde referans olarak verilmiştir.

125x Windows kod sayfalarının tümü ve 874 ve 936, Internet Assigned Numbers Authority (IANA) tarafından "Windows numarası " olarak etiketlenmiştir , ancak "Windows-936", " GBK " ile eşanlamlı olarak kabul edilir . Windows kod sayfası 932, bunun yerine "Windows-31J" olarak etiketlenmiştir.

ANSI Windows kod sayfaları ve özellikle kod sayfası 1252 , sözde ANSI için gönderilen veya amaçlanan taslaklara dayandıkları için bu şekilde adlandırıldı. Ancak, ANSI ve ISO bu kod sayfalarından hiçbirini standartlaştırmamıştır. Bunun yerine ya:

Microsoft , CP1252'deki yaklaşık on iki tipografi ve iş karakterini (özellikle euro işareti , € dahil) , ISO 8859'da C1 kontrol kodlarına atanan 0x80–0x9F kod noktalarına atadı . Bu atamalar, aynı kod noktalarındaki diğer birçok ANSI/Windows kod sayfasında da mevcuttur. Windows, C1 kontrol kodlarını kullanmadı, bu nedenle bu kararın Windows kullanıcıları üzerinde doğrudan bir etkisi olmadı. Ancak, Unix veya MacOS gibi standartlarla uyumlu bir platforma aktarılan bir dosyaya dahil edildiğinde, bilgi görünmezdi ve potansiyel olarak yıkıcıydı.

OEM kod sayfası

OEM kod sayfaları ( orijinal ekipman üreticisi ) tarafından kullanılan bir Win32 konsol uygulamaları ve tarafından sanal DOS ve bir holdover düşünülebilir DOS ve orijinal IBM PC mimarisi. Ayrı bir kod sayfaları paketi, yalnızca uyumluluk nedeniyle değil, aynı zamanda VGA (ve alt) donanımının yazı tipleri, kod sayfası 437 ile uyumlu olacak şekilde çizgi çizme karakterlerinin kodlanmasını önerdiği için uygulandı . Çoğu OEM kod sayfası, CP437'nin ikinci (ASCII olmayan) yarısı ile özellikle harf olmayan karakterler için birçok kod noktasını paylaşır.

Tipik bir OEM kod sayfası, ikinci yarısında herhangi bir ANSI/Windows kod sayfasına kabaca bile benzemez. Bununla birlikte, iki tek baytlık sabit genişlikli kod sayfası ( Tay dili için 874 ve Vietnamca için 1258 ) ve dört çok baytlı CJK kod sayfası ( 932 , 936 , 949 , 950 ) hem OEM hem de ANSI kod sayfaları olarak kullanılır. Kod sayfası 1258 , Vietnamca 128'den fazla harf-aksan kombinasyonu gerektirdiğinden, aksanların birleştirilmesini kullanır . Bu, bazı C0 (yani ASCII) kontrol kodlarının yerini alan VISCII'nin aksinedir .

Tarih

Başlangıçta, bilgisayar sistemleri ve sistem programlama dilleri, karakterler ve baytlar arasında bir ayrım yapmıyordu : Afrika'nın çoğunda, Amerika'da, güney ve güneydoğu Asya'da, Orta Doğu ve Avrupa'da kullanılan segmental komut dosyaları için , bir karakterin yalnızca bir bayta ihtiyacı vardır. , ancak dünyanın geri kalanında kullanılan ideografik kümeler için iki veya daha fazla bayt gerekir . Bu, daha sonra çok fazla kafa karışıklığına neden oldu. Windows NT satırından önceki Microsoft yazılımları ve sistemleri buna örnektir, çünkü ayrım yapmayan OEM ve ANSI kod sayfalarını kullanırlar.

1990'ların sonlarından bu yana, yazılım ve sistemler tercih edilen depolama formatı olarak Unicode'u benimsemiştir ; bu eğilim, kullanılan kodlamayı etiketlemek için daha yeterli bir mekanizma sağlayan XML'in yaygın olarak benimsenmesiyle geliştirilmiştir . En son Microsoft ürünleri ve uygulama programı arabirimleri dahili olarak Unicode kullanır, ancak birçok uygulama ve API, dosyalara veya standart çıktıya metin verilerini okurken ve yazarken bilgisayarın "yerel ayarının" varsayılan kodlamasını kullanmaya devam eder. Bu nedenle, dünyanın bir yerinde okunaklı ve anlaşılır, ancak bir başka yerinde anlaşılmaz mojibake dosyalarına hala rastlanabilir .

UTF-8, UTF-16

Microsoft , Windows NT'den itibaren tüm işletim sistemleri için 16 bit (iki bayt) UTF-16 sistemini benimsemeye karar verdi . Bu yöntem, Temel Çok Dilli Düzlemdeki tüm Unicode karakterlerini benzersiz bir şekilde kodlar ve diğerleri için 32 bit (dört bayt) bir kod kodlar - ancak endüstrinin geri kalanı ( Unix benzeri sistemler ve web) UTF-8'i (bir bayt kullanan ) seçti . 7 bitlik ASCII karakter seti, BMP'deki diğer karakterler için iki veya üç bayt ve geri kalanlar için dört bayt). Windows 10 sürüm 1803'ten bu yana , Windows makineleri "ANSI" ve OEM kod sayfası olarak UTF-8'e izin verecek şekilde yapılandırılabilir.

Liste

Aşağıdaki Windows kod sayfaları mevcuttur:

Windows-125x serisi

Bu dokuz kod sayfasının tümü genişletilmiş ASCII 8 bit SBCS kodlamalarıdır ve Microsoft tarafından Windows'ta ANSI kod sayfaları olarak kullanılmak üzere tasarlanmıştır . Genellikle IANA'ya kayıtlı adlarıyla bilinirler windows-<number>, ancak bazen cp<number>"kod sayfası" için "cp" olarak da adlandırılırlar . Hepsi ANSI kod sayfaları olarak kullanılır; Windows-1258, OEM kod sayfası olarak da kullanılır.

Windows-125x serisi, ANSI kod sayfalarından dokuzunu içerir ve çoğunlukla Vietnam'ın eklenmesiyle Avrupa ve Batı Asya'dan gelen komut dosyalarını kapsar . Tay dili ve Doğu Asya dilleri için sistem kodlamaları, benzer IBM kod sayfalarıyla eşleşecek şekilde numaralandırılmıştır ve hem ANSI hem de OEM kod sayfaları olarak kullanılmıştır; bunlar aşağıdaki bölümlerde ele alınmıştır.

İD Açıklama ISO 8859 veya diğer yerleşik kodlamalarla ilişki
1250 Latince  2 / Orta Avrupa ISO-8859-2'ye benzer, ancak birden çok harf dahil olmak üzere birkaç karakteri hareket ettirir.
1251 Kiril Her iki Uyumsuz ISO-8859-5 ve KOI-8 .
1252 Latince 1 / Batı Avrupa Üst kümesidir ISO-8859-1 (C1-kontrolleri söz konusu olmaksızın). Harf repertuarı buna göre CP850'ye benzer .
1253 Yunan ISO 8859-7'ye benzer, ancak bir harf de dahil olmak üzere birkaç karakteri hareket ettirir.
1254 Türk ISO 8859-9'un üst kümesi (C1 kontrolleri olmadan).
1255 İbranice Neredeyse bir ISO 8859-8 üst kümesi , ancak iki uyumsuz noktalama değişikliği ile.
1256 Arapça ISO 8859-6 ile uyumlu değildir ; bunun yerine, OEM Kodu sayfası 708 , bir ISO 8859-6 (ASMO 708) üst kümesidir.
1257 Baltık ISO 8859-4 değil ; sonraki ISO 8859-13 yakından ilişkilidir, ancak mevcut noktalama işaretlerinde bazı farklılıklar vardır.
1258 Vietnamca (ayrıca OEM) VSCII veya VISCII ile ilgili değildir , aksanları birleştirerek daha az temel karakter kullanır.

DOS kod sayfaları

Bunlar ayrıca ASCII tabanlıdır. Bunların çoğu, OEM kod sayfaları olarak kullanılmak üzere dahil edilmiştir; kod sayfası 874, aynı zamanda bir ANSI kod sayfası olarak da kullanılır.

  • 437  – IBM PC US, 8 bit SBCS genişletilmiş ASCII . VGA grafik kartlarının birincil yerleşik yazı tipinin kodlaması olan OEM-US olarak bilinir.
  • 708  - Arapça, genişletilmiş ISO 8859-6 (ASMO 708)
  • 720  – Arapça, kutu çizim karakterlerini her zamanki yerlerinde tutan
  • 737  - "MS-DOS Yunanca". Tüm kutu çizim karakterlerini korur. 869'dan daha popüler.
  • 775  - "MS-DOS Baltık Kıyısı"
  • 850  - "MS-DOS Latince 1". ISO 8859-1'in tam (yeniden düzenlenmiş) repertuarı .
  • 852  - "MS-DOS Latince 2"
  • 855  - "MS-DOS Kiril". Esas olarak Güney Slav dilleri için kullanılır . ISO-8859-5 repertuarını (yeniden düzenlenmiş) içerir . cp866 ile karıştırılmamalıdır.
  • 857  – "MS-DOS Türkçe"
  • 858  - Avro işaretli Batı Avrupa
  • 860  - "MS-DOS Portekizce"
  • 861  - "MS-DOS İzlandaca"
  • 862  - "MS-DOS İbranice"
  • 863  - "MS-DOS Fransızca Kanada"
  • 864  – Arapça
  • 865  - "MS-DOS İskandinav"
  • 866  - "MS-DOS Kiril Rusça", cp866. HTML5 için WHATWG Kodlama Standardında eski bir kodlama olarak dahil edilen (ANSI veya her ikisi yerine) tamamen OEM kod sayfası .
  • 869  - "MS-DOS Yunanca 2", IBM869. ISO 8859-7'nin tam (yeniden düzenlenmiş) repertuarı .
  • 874  - ANSI kod sayfası olarak da kullanılan Tay dili , ISO 8859-11'i (ve dolayısıyla TIS- 620'yi ) Windows- 1252'den birkaç ek karakterle genişletir . IBM kod sayfası 1162'ye karşılık gelir (IBM-874 benzerdir ancak farklı uzantılara sahiptir).

Doğu Asya çok baytlı kod sayfaları

Bunlar genellikle aynı numaradaki IBM kod sayfalarıyla yalnızca kısmen eşleşir: 932, 936 ve 949 kod sayfaları aynı numaradaki IBM kod sayfalarından farklıdır, oysa bir kludge'ın parçası olarak Windows-951 IBM-951 ile ilgisizdir. IBM eşdeğer kod sayfaları ikinci sütunda verilmiştir. 932, 936, 949 ve 950/951 kod sayfaları, söz konusu yerel ayarlarda hem ANSI hem de OEM kod sayfaları olarak kullanılır.

İD IBM Eşdeğeri Dilim kodlama Kullanmak
932 943 Japonca Shift JIS (Microsoft varyantı) ANSI/OEM (Japonya)
936 1386 Basitleştirilmiş Çince) GBK ANSI/OEM (ÇHC, Singapur)
949 1363 Koreli Birleşik Hangul Kodu ANSI/OEM (Kore Cumhuriyeti)
950 1370, 1373 Çin geleneği) Big5 (Microsoft varyantı) ANSI/OEM (Tayvan, Hong Kong)
951 5471 Çin geleneği) Big5-HKSCS (2001 ed.) ANSI/OEM (Hong Kong, 98/NT4/2000/XP, HKSCS yaması ile)

İşletim sistemi kitaplıkları kullanılarak kod çözme veya kodlama için birkaç çok baytlı kod sayfası daha desteklenir, ancak herhangi bir yerel ayarda sistem kodlaması türü olarak kullanılmaz.

İD IBM Eşdeğeri Dilim kodlama Kullanmak
1361 - Koreli Johab (KS C 5601-1992 ek 3) Dönüştürmek
20000 964 Çin geleneği) CNS 11643 Dönüştürmek
20001 - Çin geleneği) TCA Dönüştürmek
20002 - Çin geleneği) Big5 (ETEN varyantı) Dönüştürmek
20003 ? Çin geleneği) IBM 5500 Dönüştürmek
20004 - Çin geleneği) teletekst Dönüştürmek
20005 - Çin geleneği) Wang Dönüştürmek
20932 , 51932 954 (kabaca) Japonca EUC-JP Dönüştürmek
20936 , 51936 - Basitleştirilmiş Çince) GB2312 Dönüştürmek
20949 , 51949 - Koreli Wansung (ASCII ile 8 bit, yani EUC-KR ) Dönüştürmek

EBCDIC kod sayfaları

  • 37 – IBM EBCDIC ABD-Kanada, 8-bit SBCS
  • 500 – Latince 1
  • 870 – IBM870
  • 875 – cp875
  • 1026 – EBCDIC Türkçesi
  • 1047 – IBM01047 – Latince 1
  • 1140 – IBM01141
  • 1141 – IBM01141
  • 1142 – IBM01142
  • 1143 – IBM01143
  • 1144 – IBM01144
  • 1145 – IBM01145
  • 1146 – IBM01146
  • 1147 – IBM01147
  • 1148 – IBM01148
  • 1149 – IBM01149
  • 20273  – EBCDIC Almanya
  • 20277  – EBCDIC Danimarka/Norveç
  • 20278  – EBCDIC Finlandiya/İsveç
  • 20280  – EBCDIC İtalya
  • 20284  – EBCDIC Latin Amerika/İspanya
  • 20285  – EBCDIC Birleşik Krallık
  • 20290  – EBCDIC Japonca
  • 20297  – EBCDIC Fransa
  • 20420  – EBCDIC Arapça
  • 20423  – EBCDIC Yunanca
  • 20424  – x-EBCDIC-KoreceGenişletilmiş
  • 20833  – Korece
  • 20838  – EBCDIC Tayca
  • 20924 – IBM00924 – IBM EBCDIC Latin 1/Açık Sistem (1047 + Euro sembolü)
  • 20871  – EBCDIC İzlandaca
  • 20880  – EBCDIC Kiril
  • 20905  – EBCDIC Türkçe
  • 21025 – EBCDIC Kiril
  • 21027  - Japonca EBCDIC (tamamlanmamış, kullanımdan kaldırıldı)

Unicode ile ilgili kod sayfaları

Macintosh uyumluluk kodu sayfaları

  • 10000  – Apple Macintosh Roman
  • 10001  – Apple Macintosh Japonca
  • 10002  – Apple Macintosh Çince (geleneksel) (BIG-5)
  • 10003  – Apple Macintosh Korece
  • 10004  – Apple Macintosh Arapça
  • 10005  – Apple Macintosh İbranice
  • 10006  – Apple Macintosh Yunanca
  • 10007  – Apple Macintosh Kiril
  • 10008  – Apple Macintosh Çince (basitleştirilmiş) (GB 2312)
  • 10010  – Apple Macintosh Rumence
  • 10017  – Apple Macintosh Ukraynaca
  • 10021  – Apple Macintosh Tayca
  • 10029  – Apple Macintosh Roman II / Orta Avrupa
  • 10079  – Apple Macintosh İzlandaca
  • 10081  – Apple Macintosh Türkçe
  • 10082  – Apple Macintosh Hırvatça

ISO 8859 kod sayfaları

ITU-T kod sayfaları

KOI8 kod sayfaları

  • 20866 – Rusça – KOI8-R
  • 21866 – Ukraynaca – KOI8-U (veya bazı versiyonlarda KOI8-RU )

Kod sayfalarının kullanımından kaynaklanan sorunlar

Microsoft, modern uygulamalarda Unicode kullanılmasını şiddetle tavsiye eder, ancak birçok uygulama veya veri dosyası hala eski kod sayfalarına bağlıdır.

  • Programların (Unicode öncesi) dosyaların içeriğini doğru bir şekilde görüntülemek için hangi kod sayfasını kullanacaklarını bilmesi gerekir. Bir program yanlış kod sayfasını kullanırsa, metni mojibake olarak gösterebilir .
  • Kullanılan kod sayfası makineler arasında farklılık gösterebilir, bu nedenle bir makinede oluşturulan (Unicode öncesi) dosyalar başka bir makinede okunamayabilir.
  • Veriler genellikle kod sayfasıyla hatalı bir şekilde etiketlenir veya hiç etiketlenmez, bu da verilerin okunması için doğru kod sayfasının belirlenmesini zorlaştırır.
  • Bu Microsoft kod sayfaları, bazı standartlardan ve diğer satıcıların uygulamalarından çeşitli derecelerde farklılık gösterir. Bu, tüm satıcılarda olduğu gibi başlı başına bir Microsoft sorunu değildir , ancak tutarlılık eksikliği, bazı durumlarda diğer sistemlerle birlikte çalışabilirliği güvenilmez hale getirir.
  • Kod sayfalarının kullanımı, kullanılabilecek karakter kümesini sınırlar.
  • Desteklenmeyen bir kod sayfasında ifade edilen karakterler , soru işaretlerine (?) veya diğer değiştirme karakterlerine veya daha basit bir sürüme (örneğin bir harften aksanların kaldırılması) dönüştürülebilir. Her iki durumda da orijinal karakter kaybolabilir.

Ayrıca bakınız

  • AppLocale  – Unicode olmayan (kod sayfası tabanlı) uygulamaları kullanıcının tercih ettiği bir yerel ayarda çalıştırmak için bir yardımcı program.

Referanslar

Dış bağlantılar