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ı
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:
- ISO 8859 ve çeşitli ulusal standartlar ( Windows-1252 ve ISO-8859-1 gibi) gibi standart kümelerin üst kümeleri ,
- Bunların büyük modifikasyonları ( Windows-1250 ve ISO-8859-2 gibi çeşitli derecelerde uyumsuz olmaları )
- Hiçbir paralel kodlamasını olması (gibi Windows'un-1257 vs ISO-8859-4 ; ISO-8859-13 sonradan çok tanıtıldı). Ayrıca Windows-1251 , ne ISO standardize edilmiş ISO-8859-5'i ne de o sırada geçerli olan KOI-8'i takip etmez .
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ı)
- 1200 – Unicode (ISO 10646'nın BMP'si, UTF-16LE ). Yalnızca yönetilen uygulamalar için kullanılabilir
- 1201 – Unicode ( UTF-16BE ). Yalnızca yönetilen uygulamalar için kullanılabilir
- 12000 – UTF-32 . Yalnızca yönetilen uygulamalar için kullanılabilir
- 12001 – UTF-32 . Büyük endian. Yalnızca yönetilen uygulamalar için kullanılabilir
- 65000 – Unicode ( UTF-7 )
- 65001 – Unicode ( UTF-8 )
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ı
- 28591 – ISO-8859-1 – Latin-1 (IBM eşdeğeri: 819)
- 28592 – ISO-8859-2 – Latince-2
- 28593 – ISO-8859-3 – Latin-3 veya Güney Avrupa
- 28594 – ISO- 8859-4 – Latin-4 veya Kuzey Avrupa
- 28595 – ISO-8859-5 – Latince/Kiril
- 28596 – ISO-8859-6 – Latince/Arapça
- 28597 – ISO- 8859-7 – Latince/Yunanca
- 28598 - ISO-8859-8 - Latince / İbranice
- 28599 – ISO-8859-9 – Latin-5 veya Türkçe
- 28600 – ISO-8859-10 – Latin-6
- 28601 – ISO-8859-11 – Latince/Tayca
- 28602 - ISO-8859-12 - Latince / Devanagari için ayrılmış fakat terkedilmiş (desteklenmemektedir)
- 28603 – ISO-8859-13 – Latin-7 veya Baltık Kıyısı
- 28604 – ISO-8859-14 – Latin-8 veya Kelt
- 28605 – ISO-8859-15 – Latin-9
- 28606 – ISO-8859-16 – Latin-10 veya Güneydoğu Avrupa
- 38596 – ISO-8859-6- I – Latince/Arapça (mantıksal çift yönlü sıra)
- 38598 – ISO-8859-8- I – Latince/İbranice (mantıksal çift yönlü sıra)
ITU-T kod sayfaları
KOI8 kod sayfaları
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
- Ulusal Dil Desteği (NLS) API Başvurusu . Dil başına ANSI ve OEM kod sayfalarını gösteren tablo (Microsoft orijinal sayfayı kaldırdığından beri web arşivinden)
- IANA Karakter Adı Kayıtları
- Windows kod sayfaları için Unicode eşleme tablosu
- Windows kod sayfalarının "en uygun" Unicode eşlemeleri