ANSI kodlama formatı nedir? Bir sistem varsayılan biçimi mi? ASCII'den ne şekilde farklıdır?
ANSI kodlama formatı nedir? Bir sistem varsayılan biçimi mi? ASCII'den ne şekilde farklıdır?
Yanıtlar:
ANSI kodlaması, genellikle Windows olmak üzere bir sistemdeki standart kod sayfasına atıfta bulunmak için kullanılan genel bir terimdir. Batı / ABD sistemlerinde daha düzgün bir şekilde Windows-1252 olarak adlandırılır . ( Diğer sistemlerde bazı diğer Windows kod sayfalarını temsil edebilir .) Bu aslında ASCII karakter kümesinin ek 128 karakter kodlu tüm ASCII karakterlerini içerdiği bir uzantısıdır . Bu fark, "ANSI" kodlamasının ASCII olduğu gibi 7-bit yerine 8-bit olmasından kaynaklanmaktadır (ASCII, günümüzde MSB 0'a ayarlı olarak her zaman 8-bit bayt olarak kodlanmaktadır ). Bu kodlamanın neden genellikle ANSI olarak adlandırıldığının açıklaması için makaleye bakın.
"ANSI" adı yanlış bir adlandırmadır, çünkü gerçek ANSI standardına karşılık gelmez, ancak ad sıkışmış demektir. ANSI, UTF-8 ile aynı değildir.
windows-1254
.
Teknik olarak ANSI, US-ASCII ile aynı olmalıdır. ANSI X3.4 standardını ifade eder, bu sadece ANSI kuruluşunun onaylanmış ASCII sürümüdür. Üst bit seti karakterlerinin kullanımı, 7 bit karakter seti olduğu için ASCII / ANSI'de tanımlanmamıştır.
Bununla birlikte, DOS ve daha sonra Windows topluluğu tarafından terimin yıllarca kötüye kullanılması, “hangi makinenin kullanıldığının sistem kod sayfası” olarak pratik anlamını bırakmıştır. Sistem kod sayfası bazen 'mbcs' olarak da bilinir, çünkü Doğu Asya sistemlerinde karakter başına çok baytlık kodlama olabilir. Bazı kod sayfaları üst bit açık baytlarını çok baytlı bir dizide arka bayt olarak bile kullanabilir, bu yüzden düz ASCII ile sıkı bir şekilde uyumlu değildir ... ancak o zaman bile buna hala “ANSI” denir.
ABD ve Batı Avrupa varsayılan ayarlarında “ANSI”, Windows kod sayfası 1252 ile eşleşir. Bu, ISO-8859-1 ile aynı değildir (oldukça benzer olmasına rağmen). Diğer makinelerde başka bir şey olabilir. Bu, “ANSI” yi harici bir kodlama tanımlayıcısı olarak tamamen işe yaramaz hale getirir.
Açıkçası ANSI kodlaması diye bir şey yoktur. Konuşma dilinde ANSI terimi birkaç farklı kodlama için kullanılır:
Bir zamanlar Microsoft, herkes gibi, 7-bit karakter kümeleri kullandı ve ASCII'yi temel bir alt küme olarak tutsalar da, onlara uygun olduğunda kendileri icat ettiler. Daha sonra dünyanın 8 bit kodlamaya geçtiğini ve ISO-8859 ailesi gibi uluslararası standartların olduğunu fark ettiler. O günlerde, uluslararası bir standarda sahip olmak istiyorsanız ve ABD'de yaşıyorsanız, uluslararası standartları kendi markaları ve numaralarıyla yeniden yayımlayan Amerikan Ulusal Standartlar Enstitüsü, ANSI'den satın aldınız (çünkü ABD hükümeti uluslararası standartlara değil, Amerikan standartlarına uygunluk). Microsoft'un ISO-8859 kopyası kapakta "ANSI" dedi. Microsoft o günlerde standartlara çok alışık olmadığından, t ANSI'nin başka birçok standart yayınladığını fark etmem. Bu yüzden ISO-8859 ailesindeki standartlara (ve o günlerde standartları gerçekten anlamadıkları için icat ettikleri varyantlara), "ANSI" kapağındaki adıyla atıfta bulundular ve Microsoft'a girdi kullanıcı dokümantasyonu ve dolayısıyla kullanıcı topluluğuna. Bu yaklaşık 30 yıl önceydi, ancak bugün hala adı duyuyorsun.
ASCII sadece 128 sembollü bir 7 bit kod sayfası tanımlar. ANSI bunu 8 bit'e genişletir ve 128 ila 255 sembolleri için birkaç farklı kod sayfası vardır.
ANSI adlandırması doğru değil çünkü aslında bu kod sayfalarını tanımlayan ISO / IEC 8859 normu. Referans için ISO / IEC 8859'a bakın . ISO / IEC 8859-16'dan ISO / IEC 8859-1'e kadar 16 kod sayfası vardır.
Windows-1252 yine ISO / IEC 8859-1'i temel alır ve esas olarak 128 ila 159 aralığında ayarlanan C1 kontrolü aralığında bir miktar değişiklik yapar. Wikipedia, Windows-1252'nin de bir saniyede ISO-8859-1 olarak adlandırıldığını belirtir ISO ile 8859 arasındaki kısa çizgi. (İnanılmaz! Kim böyle bir şey yapar?!?)
Temel olarak "ANSI", Windows'daki eski kod sayfasını ifade eder. Raymond Chen'in bu konuyla ilgili makalesine de bakınız :
Bunun kaynağı, Windows kod sayfası 1252'nin orijinal olarak ISO Standardı 8859-1 olan bir ANSI taslağını temel almasından kaynaklanmaktadır.
İlk 127 karakter çoğu kod sayfasındaki ASCII ile aynıdır, üst karakterler ise değişir.
Ancak, ANSI yok değil otomatik CP1252 veya Latince 1 anlamına gelir.
Tüm karışıklıklar bugünlerde bu tür sorunlardan kaçınmanıza ve Unicode kullanmanıza rağmen.
Bilgisayarınızın "Western" bir PC olmaması ve hangi kod sayfasının kullanıldığını bilmemeniz durumunda, şu sayfaya bakabilirsiniz: Ulusal Dil Desteği (NLS) API Başvurusu
[Microsoft bu başvuruyu kaldırdı, web arşivinden alın Ulusal Dil Desteği (NLS) API Başvurusu
Veya kayıt defterinizi sorgulayabilirsiniz:
C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
End of search: 1 match(es) found.
C:\>
Tek baytlık karakterler kullanılırken, ASCII biçimi ilk 127 karakteri tanımlar. 128-255 arasındaki genişletilmiş karakterler, diğer diller için sınırlı desteğe izin vermek üzere çeşitli ANSI kod sayfaları tarafından tanımlanır. ANSI kodlu bir dizeyi anlamak için hangi kod sayfasını kullandığını bilmeniz gerekir.
Ben akan metin akışını değiştirmek için ANSI.SYS sürücüsü aracılığıyla DOS kullanılabilir sözde VT-100 kaçış kodları atıfta "ANSI" metin zaman hatırlıyorum .... Muhtemelen ne atıfta değil ama bakın http: //en.wikipedia.org/wiki/ANSI_escape_code
ANSI (diğer adıyla Windows-1252 / WinLatin1), Latin alfabesinin ISO- 8859-1'e oldukça benzeyen bir karakter kodlamasıdır . Wikipedia'ya bir göz atmak isteyebilirsiniz .