• ascii seçenekleri. Metin bilgilerinin kodlanması

    Bilgisayar, bu verilerin daha uygun bir şekilde iletilmesini, depolanmasını veya otomatik işlenmesini organize etmeyi sağlayan bir forma dönüştürme sürecini anlar. Bu amaçla çeşitli tablolar kullanılmaktadır. ASCII kodlaması, Amerika Birleşik Devletleri'nde İngilizce metinle çalışmak için geliştirilen ve daha sonra tüm dünyada yaygınlaşan ilk sistemdi. Aşağıdaki makale, açıklamasına, özelliklerine, özelliklerine ve daha fazla kullanımına ayrılmıştır.

    Bilgilerin bir bilgisayarda görüntülenmesi ve saklanması

    Bir bilgisayarın veya belirli bir mobil dijital aygıtın monitöründeki simgeler, çeşitli karakterlerin vektör şekilleri kümeleri ve bunların arasında doğru yere yerleştirilmesi gereken simgeyi bulmanızı sağlayan bir kod temelinde oluşturulur. Bu bir bit dizisidir. Bu nedenle, her karakter benzersiz bir şekilde belirli, benzersiz bir sırada duran bir dizi sıfıra ve bire karşılık gelmelidir.

    Hepsi nasıl başladı

    Tarihsel olarak, ilk bilgisayarlar İngilizce idi. İçlerindeki sembolik bilgileri kodlamak için sadece 7 bit bellek kullanmak yeterli olurken, 8 bitten oluşan 1 byte bu amaç için ayrılmıştı. Bu durumda bilgisayarın anladığı karakter sayısı 128'di. Bu karakterler, noktalama işaretleri, sayılar ve bazı özel karakterlerle birlikte İngiliz alfabesini içeriyordu. 1963'te geliştirilen karşılık gelen tabloyla (kod sayfası) İngilizce yedi bitlik kodlamaya, Bilgi Alışverişi için Amerikan Standart Kodu adı verildi. Genellikle "ASCII kodlaması" kısaltması kullanıldı ve bugüne kadar da kullanılıyor.

    Çok dilliliğe geçiş

    Zamanla, bilgisayarlar İngilizce konuşulmayan ülkelerde yaygın olarak kullanılır hale geldi. Bu bağlamda, ulusal dillerin kullanımına izin veren kodlamalara ihtiyaç duyulmuştur. Tekerleği yeniden icat etmemeye ve ASCII'yi temel almaya karar verildi. Yeni baskıdaki kodlama tablosu önemli ölçüde genişledi. 8. bitin kullanılması, 256 karakterin bir bilgisayar diline çevrilmesini mümkün kıldı.

    Tanım

    ASCII kodlaması 2 parçaya bölünmüş bir tabloya sahiptir. Genel kabul görmüş uluslararası standart, yalnızca ilk yarısı olarak kabul edilir. O içerir:

    • 0'dan 31'e kadar seri numaralarına sahip karakterler, 00000000'den 00011111'e kadar dizilerle kodlanmıştır. Bir ekranda veya yazıcıda metin görüntüleme, ses sinyali verme vb. işlemleri kontrol eden kontrol karakterleri için ayrılmıştır.
    • 00100000 ila 01111111 arasındaki dizilerle kodlanan 32'den 127'ye kadar olan tabloda NN'li karakterler tablonun standart bölümünü oluşturur. Bir boşluk (N 32), Latin alfabesinin harfleri (küçük ve büyük harf), 0'dan 9'a kadar on basamaklı sayılar, noktalama işaretleri, çeşitli stillerde parantezler ve diğer sembolleri içerir.
    • 10000000 ile 11111111 arasındaki dizilerle kodlanan 128'den 255'e kadar seri numaralı karakterler. Bunlar, Latin dışındaki ulusal alfabelerin harflerini içerir. Rusça karakterleri bir bilgisayar formuna dönüştürmek için kullanılan ASCII kodlama tablosunun bu alternatif kısmıdır.

    bazı özellikler

    ASCII kodlamasının özellikleri, yalnızca bir bitlik küçük ve büyük harflerin "A" - "Z" harfleri arasındaki farkı içerir. Bu durum, kaydın dönüştürülmesini ve ayrıca belirli bir değer aralığına ait olduğunun doğrulanmasını büyük ölçüde basitleştirir. Ayrıca ASCII kodlama sistemindeki tüm harfler, ikili sayı sisteminde 5 haneli olarak yazılan alfabede kendi seri numaralarıyla temsil edilir, küçük harfler için 011 2, büyük harfler için 010 2 gelir.

    10 haneli - "0" - "9" gösterimi de ASCII kodlamanın özellikleri arasında sayılabilir. İkinci sayı sisteminde 00112 ile başlar ve 2 sayı değeri ile biter. Böylece, 0101 2 ondalık beşe eşdeğerdir, bu nedenle "5" karakteri 0011 01012 olarak yazılır. Yukarıdakilere dayanarak, soldaki her yarım bayta 00112 bit dizisini ekleyerek BCD numaralarını kolayca bir ASCII dizisine dönüştürebilirsiniz.

    "Unicode"

    Bildiğiniz üzere Güneydoğu Asya grubuna ait dillerde metinleri görüntülemek için binlerce karakter gerekiyor. Bu tür bir sayı hiçbir şekilde bir baytlık bilgide tanımlanmamıştır, bu nedenle ASCII'nin genişletilmiş sürümleri bile artık farklı ülkelerden kullanıcıların artan ihtiyaçlarını karşılayamaz.

    Bu nedenle, küresel BT endüstrisinin birçok lideriyle işbirliği içinde Unicode konsorsiyumu tarafından geliştirilen evrensel bir metin kodlaması oluşturmaya ihtiyaç vardı. Uzmanları UTF 32 sistemini yarattı, içinde 1 karakter kodlamak için 32 bit tahsis edildi ve 4 bayt bilgi oluştu. Ana dezavantaj, gerekli bellek miktarında 4 kata kadar keskin bir artıştı ve bu da birçok sorunu beraberinde getirdi.

    Aynı zamanda, Hint-Avrupa grubuna ait resmi dillere sahip çoğu ülke için, 2 32'ye eşit karakter sayısı gereksizden fazladır.

    Unicode konsorsiyumundan uzmanların daha fazla çalışması sonucunda UTF-16 kodlaması ortaya çıktı. Hem gerekli bellek miktarı hem de kodlanan karakter sayısı açısından herkese uyan sembolik bilgileri dönüştürme seçeneği haline geldi. Bu nedenle UTF-16 varsayılan olarak benimsenmiştir ve bir karakter için 2 baytın ayrılmasını gerektirir.

    "Unicode" un bu oldukça gelişmiş ve başarılı sürümünün bile bazı dezavantajları vardı ve ASCII'nin genişletilmiş sürümünden UTF-16'ya geçişten sonra belgenin boyutunu iki katına çıkardı.

    Bu bağlamda UTF-8 değişken uzunluklu kodlamanın kullanılmasına karar verilmiştir. Bu durumda, kaynak metnin her karakteri, 1 ila 6 bayt uzunluğunda bir dizi ile kodlanır.

    Bilgi alışverişi için Amerikan standart koduyla ilişkilendirme

    Değişken uzunluktaki UTF-8'deki Latin alfabesinin tüm karakterleri, ASCII kodlama sisteminde olduğu gibi 1 bayt olarak kodlanmıştır.

    UTF-8'in bir özelliği, başka karakterler kullanılmadan Latince metin olması durumunda, Unicode'u anlamayan programların bile metnin okunmasına izin vermesidir. Başka bir deyişle, ASCII metin kodlamasının temel kısmı basitçe yeni değişken uzunluklu UTF'ye gider. UTF-8'deki Kiril karakterleri 2 bayt alır ve örneğin Gürcüce karakterler 3 bayt alır. UTF-16 ve 8'i oluşturarak, yazı tiplerinde tek bir kod alanı oluşturma ana sorunu çözüldü. O zamandan beri, yazı tipi üreticileri tabloyu yalnızca ihtiyaçlarına göre metin karakterlerinin vektör biçimleriyle doldurmak zorunda kaldılar.

    Farklı işletim sistemleri farklı kodlamaları tercih eder. Farklı bir kodlama ile yazılmış metinleri okuyabilmek ve düzenleyebilmek için Rusça metin dönüştürme programları kullanılmaktadır. Bazı metin editörleri yerleşik kod dönüştürücüler içerir ve kodlamadan bağımsız olarak metni okumanıza olanak tanır.

    Artık ASCII'de kaç karakter olduğunu ve nasıl ve neden tasarlandığını biliyorsunuz. Elbette bugün dünyada en yaygın olarak kullanılan Unicode standardıdır. Ancak, ASCII temelinde oluşturulduğunu unutmamalıyız, bu nedenle geliştiricilerinin BT alanına katkıları takdir edilmelidir.

    Merhaba, blog sitesinin sevgili okuyucuları. Bugün sizlerle sitede ve programlarda krakozyabrların nereden geldiğini, hangi metin kodlamalarının var olduğunu ve hangilerinin kullanılması gerektiğini konuşacağız. Temel ASCII'den ve genişletilmiş sürümleri CP866, KOI8-R, Windows 1251'den başlayarak ve Unicode Konsorsiyumu UTF 16 ve 8'in modern kodlamalarıyla biten geliştirme tarihlerine daha yakından bakalım.

    Bazıları için bu bilgi gereksiz görünebilir, ancak özellikle sürünen krakozyabrlar (okunamayan bir karakter seti) ile ilgili kaç tane soru aldığımı bilirsiniz. Şimdi herkesi bu makalenin metnine yönlendirme ve pervazlarımı bağımsız olarak arama fırsatım olacak. Pekala, bilgiyi özümsemeye hazır olun ve hikayenin gidişatını takip etmeye çalışın.

    ASCII - Latince için temel metin kodlaması

    Metin kodlamalarının gelişimi, BT endüstrisinin oluşumuyla aynı anda gerçekleşti ve bu süre zarfında oldukça fazla değişiklik geçirmeyi başardılar. Tarihsel olarak, her şey Rus telaffuzunda oldukça uyumsuz olan ve Latin alfabesinin harflerini, Arap rakamlarını ve noktalama işaretlerini kontrol karakterleriyle kodlamayı mümkün kılan EBCDIC ile başladı.

    Ancak yine de, modern metin kodlamalarının geliştirilmesi için başlangıç ​​noktası ünlü olarak kabul edilmelidir. ASCII(Rusça'da genellikle "aski" olarak telaffuz edilen Amerikan Bilgi Alışverişi Standart Kodu). İngilizce konuşan kullanıcılar tarafından en sık kullanılan Latin harfleri, Arap rakamları ve noktalama işaretlerinin ilk 128 karakterini açıklar.

    ASCII'de açıklanan bu 128 karakterde bile parantez, çubuk, yıldız vb. bazı hizmet karakterleri vardı. Aslında, onları kendiniz görebilirsiniz:

    Standart haline gelen ASCII'nin orijinal versiyonundaki bu 128 karakterdir ve diğer herhangi bir kodlamada kesinlikle onlarla karşılaşacaksınız ve bu sırada duracaklar.

    Ancak gerçek şu ki, bir bayt bilgi yardımıyla 128 değil, 256 farklı değeri (iki üzeri sekiz eşittir 256) kodlamak mümkündür, bu nedenle temel sürümden sonra Asuka, bir dizi genişletilmiş ASCII kodlamaları 128 temel karaktere ek olarak, ulusal kodlamanın (örneğin, Rusça) sembollerini kodlamanın da mümkün olduğu.

    Burada, muhtemelen, açıklamada kullanılan sayı sistemleri hakkında biraz daha söylemeye değer. İlk olarak, hepinizin bildiği gibi, bir bilgisayar yalnızca ikili sistemdeki sayılarla, yani sıfırlar ve birlerle çalışır (bir enstitüde veya okulda okuyan varsa “Boole cebri”). , sıfırdan başlayarak ve yedincide ikiye kadar her biri derecede ikidir:

    Böyle bir yapıda tüm olası sıfır ve bir kombinasyonlarından yalnızca 256 tane olabileceğini anlamak zor değil.Bir sayıyı ikiliden ondalık sayıya dönüştürmek oldukça basittir. Sadece üzerinde bir olan ikisinin tüm güçlerini toplamanız gerekiyor.

    Örneğimizde, bu 1 (2 üzeri sıfır) artı 8 (iki üzeri 3), artı 32 (iki üzeri beş), artı 64 (altıncı), artı 128 (yedinci) . Toplam, ondalık gösterimde 233 alır. Gördüğünüz gibi, her şey çok basit.

    Ancak ASCII karakterleri içeren tabloya daha yakından bakarsanız, bunların onaltılık kodlamayla temsil edildiğini göreceksiniz. Örneğin, "yıldız", Asci'de onaltılık sayı 2A'ya karşılık gelir. Onaltılık sayı sisteminin Arap rakamlarına ek olarak A'dan (on anlamına gelir) F'ye (onbeş anlamına gelir) kadar Latin harfleri kullandığını muhtemelen biliyorsunuzdur.

    Peki, için ikiliyi onaltılıya dönüştür aşağıdaki basit ve görsel yönteme başvurun. Her bayt bilgi, yukarıdaki ekran görüntüsünde gösterildiği gibi dört bitlik iki kısma bölünmüştür. O. her yarım baytta, yalnızca on altı değer, kolayca onaltılık bir sayı olarak temsil edilebilen ikili kodda (iki üzeri dördüncü güç) kodlanabilir.

    Ayrıca baytın sol yarısında ekran görüntüsünde gösterildiği gibi değil, sıfırdan başlayarak dereceleri tekrar saymak gerekecektir. Sonuç olarak, basit hesaplamalarla, ekran görüntüsünde E9 sayısının kodlandığını anlıyoruz. Umarım muhakememin seyri ve bu bulmacanın çözümü sizin için açık olmuştur. Peki, şimdi aslında metin kodlamaları hakkında konuşmaya devam edelim.

    Asuka - CP866 ve KOI8-R kodlamalarının sözde grafiklerle genişletilmiş sürümleri

    Böylece, tüm modern kodlamaların (Windows 1251, Unicode, UTF 8) geliştirilmesinin başlangıç ​​​​noktası olan ASCII hakkında konuşmaya başladık.

    Başlangıçta, Latin alfabesinin yalnızca 128 karakterini, Arap rakamlarını ve başka bir şeyi içeriyordu, ancak genişletilmiş sürümde, bir baytlık bilgide kodlanabilen 256 değerin tamamını kullanmak mümkün hale geldi. Onlar. Asci'ye dilinizin harflerinin karakterlerini eklemek mümkün hale geldi.

    Burada açıklamak için bir kez daha konunun dışına çıkmak gerekecek - Neden kodlamaya ihtiyacınız var? metinler ve neden bu kadar önemli. Bilgisayar ekranınızdaki karakterler iki şeye dayalı olarak oluşturulmuştur - her türden karakterin vektör şekilleri (temsilleri) kümeleri (bunlar ortak dosyalardadır) ve bu vektör şekiller kümesinden ( yazı tipi dosyası) tam olarak doğru yere eklemeniz gereken karakter.

    Açıktır ki, vektör formlarından yazı tipleri sorumludur, ancak kodlamadan işletim sistemi ve içinde kullanılan programlar sorumludur. Onlar. bilgisayarınızdaki herhangi bir metin, her biri bu metnin tek bir karakterini kodlayan bir dizi bayt olacaktır.

    Bu metni ekranda görüntüleyen program (metin düzenleyici, tarayıcı vb.), kodu ayrıştırırken bir sonraki karakterin kodlamasını okur ve bu metni görüntülemek için bağlanan istenen yazı tipi dosyasında karşılık gelen vektör formunu arar. belge. Her şey basit ve banal.

    Bu, ihtiyacımız olan herhangi bir karakteri (örneğin ulusal alfabeden) kodlamak için iki koşulun karşılanması gerektiği anlamına gelir - bu karakterin vektör biçimi kullanılan yazı tipinde olmalıdır ve bu karakter genişletilmiş ASCII kodlamalarında kodlanabilir. bir baytta. Bu nedenle, bu tür bir sürü seçenek var. Yalnızca Rus dilinin karakterlerini kodlamak için, genişletilmiş Aska'nın birkaç çeşidi vardır.

    Örneğin, başlangıçta ortaya çıktı CP866, Rus alfabesinin karakterlerini kullanmanın mümkün olduğu ve ASCII'nin genişletilmiş bir versiyonuydu.

    Onlar. üst kısmı, hemen yukarıdaki ekran görüntüsünde gösterilen Asuka'nın temel versiyonuyla (128 Latin karakter, sayı ve diğer saçmalıklar) tamamen örtüşüyordu, ancak tablonun CP866 kodlamalı alt kısmı, ekran görüntüsünde belirtilen forma sahipti. altında ve 128 işaret daha kodlamasına izin verildi (orada Rus harfleri ve her türlü sözde yazı):

    Görüyorsunuz, sağ sütunda sayılar 8 ile başlıyor, çünkü 0'dan 7'ye kadar olan sayılar ASCII temel kısmını ifade eder (ilk ekran görüntüsüne bakın). O. CP866'daki Rusça "M" harfi, bir bayt bilgi ile yazılabilen 9C koduna sahip olacaktır (onaltılık sayı sisteminde 9 ile ilgili satırın ve C numaralı sütunun kesişme noktasında bulunur) , ve Rusça karakterler içeren uygun bir yazı tipi varsa, bu harf metinde sorunsuz bir şekilde görüntülenecektir.

    Bu miktar nereden geldi? CP866'daki sahte grafikler? Mesele şu ki, Rusça metin için bu kodlama, şu anda olduğu gibi grafik işletim sistemlerinin böyle bir dağılımının olmadığı o tüylü yıllarda geliştirildi. Ve Dosa'da ve benzer metin işletim sistemlerinde, sözde grafikler, metinlerin tasarımını bir şekilde çeşitlendirmeyi mümkün kıldı ve bu nedenle, CP866'da ve Asuka'nın genişletilmiş sürümleri kategorisindeki diğer tüm benzerlerinde bol miktarda bulunur.

    CP866, IBM tarafından dağıtıldı, ancak buna ek olarak, Rusça karakterler için bir dizi kodlama geliştirildi, örneğin, aynı tip (genişletilmiş ASCII) atfedilebilir. KOI8-R:

    Çalışma prensibi biraz önce açıklanan CP866 ile aynı kalır - metnin her karakteri tek bir bayt tarafından kodlanır. Ekran görüntüsü KOI8-R tablosunun ikinci yarısını gösterir, çünkü ilk yarı, bu makaledeki ilk ekran görüntüsünde gösterilen temel Asuka'ya tamamen karşılık gelir.

    KOI8-R kodlamasının özellikleri arasında, tablosundaki Rusça harflerin, örneğin CP866'da yapıldığı gibi alfabetik sırada olmadığı not edilebilir.

    İlk ekran görüntüsüne bakarsanız (tüm genişletilmiş kodlamalarda bulunan taban kısmının), KOI8-R'de Rus harflerinin Latin alfabesindeki harflerle aynı tablo hücrelerinde bulunduğunu fark edeceksiniz. tablonun ilk bölümünden onlarla. Bu, yalnızca bir biti (iki üzeri yedinci güç veya 128) atarak Rusçadan Latin karakterlerine geçiş yapma kolaylığı için yapıldı.

    Windows 1251 - ASCII'nin modern sürümü ve neden krakozyabry sürünüyor?

    Metin kodlamalarının daha da geliştirilmesi, grafik işletim sistemlerinin popülerlik kazanması ve içlerinde sözde grafik kullanma ihtiyacının sonunda ortadan kalkmasından kaynaklanıyordu. Sonuç olarak, özünde hala Asuka'nın genişletilmiş sürümleri olan (metnin bir karakteri yalnızca bir bayt bilgi ile kodlanmıştır), ancak sözde karakterler kullanılmadan bütün bir grup ortaya çıktı.

    Amerikan Standartları Enstitüsü tarafından geliştirilen sözde ANSI kodlamalarına aittiler. Yaygın tabirle, Kiril adı, Rus dilini destekleyen değişken için de kullanılıyordu. Bunun bir örneği hizmet edebilir.

    Daha önce kullanılan CP866 ve KOI8-R'den olumlu bir şekilde farklıydı, çünkü içindeki psödografik sembollerin yeri, Rus tipografisinin (aksan işareti dışında) eksik sembollerinin yanı sıra yakın Slav dillerinde kullanılan semboller tarafından alındı. Rusça (Ukraynaca, Belarusça vb.):

    Bu kadar çok sayıda Rusça kodlama nedeniyle, yazı tipi üreticilerinin ve yazılım üreticilerinin başı sürekli olarak ağrıyordu ve biz, sevgili okuyucular, çoğu zaman çok kötü şöhretli olanı çıkardık. krakozyabry metinde kullanılan sürümle karışıklık olduğunda.

    Çoğu zaman e-posta ile mesaj gönderip alırken çıktılar, bu da aslında bu sorunu kökünden çözemeyen çok karmaşık dönüştürme tablolarının oluşturulmasına yol açtı ve kullanıcılar genellikle kötü şöhretli durumdan kaçınmak için yazışmalar için kullandılar. CP866, KOI8-R veya Windows 1251 gibi Rusça kodlamaları kullanırken krakozyabrs.

    Aslında, Rusça metin yerine ortaya çıkan krakozyabry, bu dilin kodlamasının, metin mesajının orijinal olarak kodlandığı dille uyuşmayan yanlış kullanımının sonucuydu.

    Örneğin, Windows 1251 kod tablosunu kullanarak CP866 kullanılarak kodlanmış karakterleri görüntülemeye çalışırsanız, aynı krakozyabry (anlamsız karakter seti) mesaj metnini tamamen değiştirerek çıkacaktır.

    Benzer bir durum, forumlarda veya bloglarda çok sık görülür, Rusça karakterler içeren metin yanlışlıkla sitede varsayılan olarak kullanılan yanlış kodlamaya veya koda görünmeyen koda tıkaç ekleyen yanlış metin düzenleyiciye kaydedildiğinde oluşur. çıplak göz

    Sonunda, birçok insan böyle bir durumdan çok fazla kodlamadan bıktı ve sürekli krakozyabry çıktı, mevcut olanların hepsini değiştirecek ve sonunda okunamayan metinlerin ortaya çıkmasıyla sorunu çözecek yeni bir evrensel varyasyon yaratmak için ön koşullar vardı. . Ek olarak, dilin karakterlerinin 256'dan çok daha fazla olduğu Çince gibi dillerin sorunu vardı.

    Unicode (Unicode) - evrensel kodlamalar UTF 8, 16 ve 32

    Güneydoğu Asya dil grubunun bu binlerce karakteri, ASCII'nin genişletilmiş sürümlerinde karakterleri kodlamak için ayrılan bir baytlık bilgide hiçbir şekilde tanımlanamadı. Sonuç olarak, bir konsorsiyum adı verilen Unicode(Unicode - Unicode Konsorsiyumu), evrensel bir metin kodlamanın ortaya çıkmasıyla ilgilenen birçok BT endüstrisi liderinin (yazılım üretenler, donanım kodlayanlar, yazı tipleri oluşturanlar) işbirliği ile.

    Unicode Konsorsiyumu'nun himayesinde piyasaya sürülecek ilk varyasyon, UTF-32. Kodlama adındaki sayı, bir karakteri kodlamak için kullanılan bit sayısı anlamına gelir. 32 bit, yeni evrensel kodlama UTF'sinde tek bir karakteri kodlamak için gerekli olacak 4 bayt bilgidir.

    Sonuç olarak, ASCII'nin genişletilmiş sürümünde ve UTF-32'de kodlanmış metin içeren aynı dosya, ikinci durumda dört kat daha büyük bir boyuta (ağırlığa) sahip olacaktır. Bu kötü, ancak şimdi UTF kullanarak iki üzeri otuz saniyeye eşit karakter sayısını kodlama fırsatına sahibiz ( milyarlarca karakter, gerçekten gerekli olan herhangi bir değeri büyük bir farkla karşılayacaktır).

    Ancak Avrupa grubunun dillerine sahip birçok ülke için, kodlamada bu kadar çok sayıda karakter kullanmaya hiç gerek yoktu, ancak UTF-32 kullanırken metnin ağırlığında dört kat artış elde edeceklerdi. belgeler boşuna ve sonuç olarak, İnternet trafiğinin hacminde ve depolanan verilerin hacminde bir artış. Bu çok fazla ve hiç kimse böyle bir israfı karşılayamaz.

    Unicode'un geliştirilmesinin bir sonucu olarak, UTF-16, o kadar başarılı oldu ki, kullandığımız tüm karakterler için varsayılan temel alan olarak kabul edildi. Bir karakteri kodlamak için iki bayt kullanır. Bakalım bu şey nasıl görünüyor.

    Windows işletim sisteminde, "Başlat" - "Programlar" - "Donatılar" - "Yardımcı Programlar" - "Karakter Tablosu" yolunu takip edebilirsiniz. Sonuç olarak, sisteminizde yüklü olan tüm yazı tiplerinin vektör şekillerini içeren bir tablo açılacaktır. "Gelişmiş Seçenekler"de Unicode karakter kümesini seçerseniz, her yazı tipi için içinde bulunan tüm karakter aralığını ayrı ayrı görebilirsiniz.

    Bu arada, herhangi birine tıklayarak çift baytını görebilirsiniz. UTF-16 formatında kod, dört onaltılık basamaktan oluşur:

    UTF-16'da 16 bit kullanılarak kaç karakter kodlanabilir? 65536 (iki üzeri on altı) ve Unicode'da temel alan olarak kabul edilen bu sayıydı. Ek olarak, onunla yaklaşık iki milyon karakter kodlamanın yolları vardır, ancak bir milyon karakterlik genişletilmiş bir metin alanıyla sınırlıdır.

    Ancak Unicode kodlamanın bu başarılı sürümü bile, örneğin programları yalnızca İngilizce yazanları pek tatmin etmedi, çünkü ASCII'nin genişletilmiş sürümünden UTF-16'ya geçişten sonra, belgelerin ağırlığı iki katına çıktı (başına bir bayt). Asci'de bir karakter ve UTF-16'da aynı karakter başına iki bayt).

    İşte bu kadar Unicode konsorsiyumundaki herkesin ve her şeyin memnuniyeti için ortaya çıkmaya karar verildi. değişken uzunluklu kodlama. Buna UTF-8 denir. Adındaki sekize rağmen, gerçekten değişken bir uzunluğa sahiptir, yani. her metin karakteri bir ila altı baytlık bir dizi halinde kodlanabilir.

    Uygulamada, UTF-8'de yalnızca bir ila dört bayt aralığı kullanılır, çünkü dört baytlık kodun arkasında teorik olarak hayal bile edilemez. İçindeki tüm Latin karakterleri, tıpkı eski güzel ASCII'deki gibi bir bayta kodlanmıştır.

    Dikkat çekici bir şekilde, yalnızca Latince kodlama durumunda, Unicode'u anlamayan programlar bile UTF-8'de kodlanmış olanı okumaya devam edecektir. Onlar. Asuka'nın temel kısmı, Unicode Konsorsiyumunun bu fikrine geçti.

    UTF-8'deki Kiril karakterleri iki bayt olarak ve örneğin Gürcüce karakterler üç bayt olarak kodlanmıştır. Unicode Konsorsiyumu, UTF 16 ve 8'i oluşturduktan sonra ana sorunu çözdü - şimdi elimizde yazı tiplerinin tek bir kod alanı vardır. Ve artık üreticileri, güçlü yanlarına ve yeteneklerine bağlı olarak, onu yalnızca metin karakterlerinin vektör biçimleriyle doldurabilir. Şimdi setlerde bile.

    Yukarıdaki "Karakter Tablosu"nda, farklı yazı tiplerinin farklı sayıda karakteri desteklediğini görebilirsiniz. Bazı Unicode açısından zengin yazı tipleri çok büyük olabilir. Ancak şimdi, farklı kodlamalar için yaratıldıkları için değil, yazı tipi üreticisinin tek kod alanını sonuna kadar bir veya daha fazla vektör formuyla doldurması veya doldurmaması gerçeğinde farklılık gösteriyorlar.

    Rus harfleri yerine Krakozyabry - nasıl düzeltilir

    Şimdi metin yerine krakozyabraların nasıl göründüğünü veya başka bir deyişle Rusça metin için doğru kodlamanın nasıl seçildiğini görelim. Aslında, aynı metni veya metin parçalarını kullanarak kodu oluşturduğunuz veya düzenlediğiniz programda ayarlanır.

    Metin dosyalarını düzenlemek ve oluşturmak için kişisel olarak çok iyi bir . Ancak, yüzlerce programlama ve biçimlendirme dilinin sözdizimini vurgulayabilir ve ayrıca eklentiler kullanılarak genişletilebilir. Aşağıdaki bağlantıdan bu harika programın ayrıntılı bir incelemesini okuyun.

    Notepad ++ üst menüsünde, mevcut bir seçeneği varsayılan olarak sitenizde kullanılana dönüştürme fırsatına sahip olacağınız bir "Kodlamalar" öğesi vardır:

    Joomla 1.5 ve sonraki sürümlerde bir site olması durumunda ve ayrıca WordPress'te bir blog söz konusu olduğunda, hataların ortaya çıkmasını önlemek için seçeneği seçin Malzeme Listesi olmadan UTF8. BOM öneki nedir?

    Gerçek şu ki, UTF-16 kodlaması geliştirildiğinde, bir nedenden dolayı, hem doğrudan sırayla (örneğin, 0A15) hem de ters sırada (150A) bir karakter kodu yazma yeteneği gibi bir şeyi eklemeye karar verdiler. . Ve programların kodları hangi sırayla okuyacağını anlaması için icat edildi. ürün ağacı(Bayt Sıra İşareti veya başka bir deyişle, belgelerin en başına üç ek bayt eklenmesiyle ifade edilen imza).

    UTF-8 kodlamasında, Unicode konsorsiyumunda hiçbir Malzeme Listesi sağlanmamıştır ve bu nedenle bir imza eklemek (belgenin başına bu en kötü şöhretli ek üç bayt), bazı programların kodu okumasını engeller. Bu nedenle, dosyaları UTF'de kaydederken, her zaman BOM'suz (imzasız) seçeneğini seçmeliyiz. yani ilerliyorsun sürünen krakozyabry'den kendinizi koruyun.

    Dikkat çekici bir şekilde, Windows'taki bazı programlar bunu nasıl yapacaklarını bilmiyorlar (metni BOM olmadan UTF-8'e kaydedemezler), örneğin aynı kötü şöhretli Windows Not Defteri. Belgeyi UTF-8'de kaydeder, ancak yine de imzayı (fazladan üç bayt) başına ekler. Ayrıca, bu baytlar her zaman aynı olacaktır - kodu doğrudan sırayla okuyun. Ancak sunucularda bu küçük şey yüzünden bir sorun ortaya çıkabilir - krakozyabry çıkacaktır.

    Bu nedenle, hiçbir şekilde normal Windows not defteri kullanmayın krakozyabrov'un görünümünü istemiyorsanız, sitenizin belgelerini düzenlemek için. Daha önce bahsedilen Notepad ++ düzenleyicisinin, pratikte hiçbir dezavantajı olmayan ve yalnızca avantajlardan oluşan en iyi ve en basit seçenek olduğunu düşünüyorum.

    Notepad++'da bir kodlama seçtiğinizde, metni Unicode standardına doğası gereği çok yakın olan UCS-2 kodlamasına dönüştürme seçeneğiniz olacaktır. Ayrıca Not Defteri'nde metni ANSI'de kodlamak mümkün olacaktır, yani. Rus dili ile ilgili olarak, bu, yukarıda biraz açıkladığımız Windows 1251 olacaktır, bu bilgi nereden geliyor?

    Windows işletim sisteminizin kayıt defterinde yazılıdır - ANSI durumunda hangi kodlamanın seçileceği, OEM durumunda hangisinin seçileceği (Rus dili için CP866 olacaktır). Bilgisayarınıza başka bir varsayılan dil yüklerseniz, bu kodlamalar aynı dil için ANSI veya OEM kategorisindeki benzerleriyle değiştirilecektir.

    Belgeyi ihtiyacınız olan kodlamada Notepad ++ ile kaydettikten veya belgeyi siteden düzenlemek için açtıktan sonra, düzenleyicinin sağ alt köşesinde adını görebilirsiniz:

    Krakozyabrov'dan kaçınmak için, yukarıda açıklanan işlemlere ek olarak, sunucuda veya yerel ana bilgisayarda herhangi bir karışıklık olmaması için sitenin tüm sayfalarının kaynak kodunun başlığına bu kodlama hakkında bilgi yazmak faydalı olacaktır.

    Genel olarak Html dışındaki tüm köprü metni biçimlendirme dillerinde, metin kodlamasını belirten özel bir xml bildirimi kullanılır.

    Tarayıcı, kodu ayrıştırmadan önce hangi sürümün kullanıldığını ve o dilin karakter kodlarının tam olarak nasıl yorumlanması gerektiğini bilir. Ancak dikkat çekici olan, belgeyi varsayılan unicode'da kaydederseniz, bu xml bildirimi atlanabilir (BOM yoksa kodlama UTF-8 veya BOM varsa UTF-16 olarak kabul edilecektir).

    Bir Html dil belgesi söz konusu olduğunda, kodlama belirtmek için kullanılır Meta öğe, açılış ve kapanış Head etiketi arasında yazılan:

    ... ...

    Bu giriş, 'dekinden oldukça farklıdır, ancak yavaş yavaş tanıtılan yeni Html 5 standardıyla tamamen uyumludur ve şu anda kullanımda olan tüm tarayıcılar tarafından %100 doğru bir şekilde anlaşılacaktır.

    Teorik olarak, belgenin Html kodlamasına sahip Meta öğesini koymak daha iyi olacaktır. belgenin başlığında mümkün olduğu kadar yüksek böylece toplantı sırasında metindeki ANSI tabanından olmayan ilk karakter (her zaman doğru ve herhangi bir varyasyonda okunacaktır), tarayıcının bu karakterlerin kodlarının nasıl yorumlanacağı hakkında zaten bilgiye sahip olması gerekir.

    Sana iyi şanslar! Yakında blog sayfaları sitesinde görüşmek üzere

    giderek daha fazla video izleyebilirsiniz
    ");">

    ilginizi çekebilir

    URL nedir, bir site için mutlak ve göreli bağlantılar arasındaki fark nedir?
    OpenServer - modern bir yerel sunucu ve onu bir bilgisayara WordPress yüklemek için kullanmanın bir örneği
    Chmod nedir, dosya ve klasörlere (777, 755, 666) hangi izinlerin atanacağı ve PHP ile nasıl yapılacağı
    Sitede ve çevrimiçi mağazada Yandex araması

    Metin yazmak için kullanılan simgeler kümesine denir. alfabetik olarak.

    Alfabedeki karakter sayısı güç.

    Bilgi miktarını belirleme formülü: N = 2b,

    N, alfabenin önem derecesidir (sembol sayısı),

    b, bit sayısıdır (karakterin bilgi ağırlığı).

    256 karakter kapasiteli bir alfabeye gerekli tüm karakterler yerleştirilebilir. Bu alfabe denir yeterli.

    Çünkü 256 = 2 8 , o zaman 1 karakterin ağırlığı 8 bittir.

    8 bitlik ölçü birimine bir isim verildi 1 bayt:

    1 bayt = 8 bit.

    Bilgisayar metnindeki her karakterin ikili kodu, 1 bayt bellek kaplar.

    Metin bilgisi bilgisayar belleğinde nasıl temsil edilir?

    Karakterlerin bayt bayt kodlamasının rahatlığı açıktır, çünkü bir bayt belleğin adreslenebilir en küçük kısmıdır ve bu nedenle işlemci, metin işlemeyi gerçekleştirirken her karaktere ayrı ayrı erişebilir. Öte yandan, 256 karakter, çok çeşitli karakter bilgilerini temsil etmek için oldukça yeterlidir.

    Şimdi soru, her karaktere hangi sekiz bitlik ikili kodun yazılacağı sorusu ortaya çıkıyor.

    Bunun şartlı bir mesele olduğu açıktır, kodlamanın birçok yolunu bulabilirsiniz.

    Bilgisayar alfabesindeki tüm karakterler 0'dan 255'e kadar numaralandırılmıştır. Her sayı, 00000000'den 11111111'e kadar sekiz bitlik bir ikili koda karşılık gelir. Bu kod, ikili sayı sistemindeki karakterin sıra numarasıdır.

    Bilgisayar alfabesindeki tüm karakterlere seri numaraları atanan bir tabloya kodlama tablosu denir.

    Farklı bilgisayar türleri için farklı kodlama tabloları kullanılır.

    Tablo, PC'ler için uluslararası standart haline geldi. ASCII(asci olarak telaffuz edilir) (Bilgi Alışverişi için Amerikan Standart Kodu).

    ASCII kod tablosu iki bölüme ayrılmıştır.

    Tablonun sadece ilk yarısı uluslararası bir standarttır, yani; sayıları olan karakterler 0 (00000000), en fazla 127 (01111111).

    ASCII kodlama tablosunun yapısı

    Seri numarası

    kod

    Sembol

    0 - 31

    00000000 - 00011111

    0'dan 31'e kadar sayıları olan karakterlere kontrol karakterleri denir.
    İşlevleri, ekranda metin görüntüleme veya yazdırma, ses sinyali verme, metni işaretleme vb. İşlemlerini kontrol etmektir.

    32 - 127

    00100000 - 01111111

    Tablonun standart kısmı (İngilizce). Buna Latin alfabesinin küçük ve büyük harfleri, ondalık basamaklar, noktalama işaretleri, her türlü parantez, ticari ve diğer semboller dahildir.
    Karakter 32 bir boşluktur, yani metinde boş konum.
    Geri kalan her şey belirli işaretlerle yansıtılır.

    128 - 255

    10000000 - 11111111

    Tablonun alternatif kısmı (Rusça).
    ASCII kod tablosunun kod sayfası olarak adlandırılan ikinci yarısı (10000000 ile başlayan ve 11111111 ile biten 128 kod) farklı seçeneklere sahip olabilir, her seçeneğin kendi numarası vardır.
    Kod sayfası, öncelikle Latince dışındaki ulusal yazıları barındırmak için kullanılır. Rus ulusal kodlamalarında, Rus alfabesinin karakterleri tablonun bu bölümüne yerleştirilir.

    ASCII kod tablosunun ilk yarısı


    Kodlama tablosunda harflerin (büyük ve küçük) alfabetik sıraya göre düzenlendiğine ve sayıların artan değer sırasına göre sıralandığına dikkatinizi çekiyorum. Karakterlerin düzenlenmesinde sözlükbilimsel düzenin bu şekilde gözetilmesine alfabenin sıralı kodlama ilkesi denir.

    Rus alfabesinin harfleri için sıralı kodlama ilkesi de gözetilir.

    ASCII kod tablosunun ikinci yarısı


    Ne yazık ki, şu anda beş farklı Kiril kodlaması var (KOI8-R, Windows. MS-DOS, Macintosh ve ISO). Bu nedenle, Rusça metnin bir bilgisayardan diğerine, bir yazılım sisteminden diğerine aktarılmasıyla ilgili sorunlar sıklıkla ortaya çıkar.

    Kronolojik olarak, bilgisayarlarda Rus harflerini kodlamak için ilk standartlardan biri KOI8 ("Bilgi Değişim Kodu, 8 bit") idi. Bu kodlama 70'lerde EC serisi bilgisayarların bilgisayarlarında kullanıldı ve 80'lerin ortalarından itibaren UNIX işletim sisteminin ilk Ruslaştırılmış sürümlerinde kullanılmaya başlandı.

    90'lı yılların başından itibaren, MS DOS işletim sisteminin hakimiyet zamanı, kodlama CP866 olarak kalır ("CP", "Kod Sayfası", "kod sayfası" anlamına gelir).

    Mac OS işletim sistemini çalıştıran Apple bilgisayarlar kendi Mac kodlamalarını kullanır.

    Ayrıca Uluslararası Standardizasyon Örgütü (Uluslararası Standartlar Örgütü, ISO), ISO 8859-5 adlı başka bir kodlamayı Rus dili için bir standart olarak onayladı.

    Şu anda kullanılan en yaygın kodlama, CP1251 olarak kısaltılan Microsoft Windows'tur.

    90'lı yılların sonundan bu yana, karakter kodlamasının standartlaştırılması sorunu, adı verilen yeni bir uluslararası standardın getirilmesiyle çözüldü. Unicode. Bu 16 bitlik bir kodlamadır, yani karakter başına 2 bayt belleğe sahiptir. Tabii bu durumda kullanılan hafıza miktarı 2 kat artıyor. Ancak böyle bir kod tablosu, 65536 karaktere kadar dahil edilmesine izin verir. Unicode standardının eksiksiz belirtimi, dünyadaki tüm mevcut, tükenmiş ve yapay olarak oluşturulmuş alfabelerin yanı sıra birçok matematiksel, müzikal, kimyasal ve diğer sembolleri içerir.

    Sözcüklerin bilgisayarın belleğinde nasıl görüneceğini hayal etmek için bir ASCII tablosu kullanmayı deneyelim.

    Bilgisayar belleğindeki sözcüklerin dahili gösterimi

    Bazen, başka bir bilgisayardan alınan Rus alfabesinin harflerinden oluşan metin okunamaz - monitör ekranında bir tür "abracadabra" görünür. Bunun nedeni, bilgisayarların Rus dilinin farklı karakter kodlamalarını kullanmasıdır.

    [8 bitlik kodlamalar: ASCII, KOI-8R ve CP1251] ABD'de oluşturulan ilk kodlama tabloları, bir baytın sekizinci bitini kullanmıyordu. Metin bir bayt dizisi olarak sunuldu, ancak sekizinci bit dikkate alınmadı (resmi amaçlar için kullanıldı).

    Tablo kabul edilen standart haline geldi. ASCII(Bilgi değişimi için Amerikan Standart kodu). ASCII tablosunun ilk 32 karakteri (00 ila 1F) yazdırılamayan karakterler için kullanıldı. Bir baskı cihazını ve benzerlerini kontrol etmek için tasarlandılar. Geri kalan - 20'den 7F'ye - normal (yazdırılabilir) karakterlerdir.

    Tablo 1 - ASCII kodlaması

    AralıkaltıgenEkimkarakterTanım
    0 0 000 hükümsüz
    1 1 001 başlığın başlangıcı
    2 2 002 metnin başlangıcı
    3 3 003 metnin sonu
    4 4 004 iletimin sonu
    5 5 005 sorgu
    6 6 006 kabullenmek
    7 7 007 zil
    8 8 010 geri boşluk
    9 9 011 yatay sekme
    10 A 012 Yeni hat
    11 B 013 dikey sekme
    12 C 014 yeni sayfa
    13 D 015 satırbaşı
    14 E 016 kaymak
    15 F 017 vardiya
    16 10 020 veri bağlantısı kaçış
    17 11 021 cihaz kontrolü 1
    18 12 022 cihaz kontrolü 2
    19 13 023 cihaz kontrolü 3
    20 14 024 cihaz kontrolü 4
    21 15 025 olumsuz onay
    22 16 026 senkron rölanti
    23 17 027 trans sonu engellemek
    24 18 030 iptal etmek
    25 19 031 ortamın sonu
    26 1 A 032 yerine geçmek
    27 1B 033 kaçmak
    28 1C 034 dosya ayırıcı
    29 1D 035 grup ayırıcı
    30 1E 036 kayıt ayırıcı
    31 1K 037 birim ayırıcı
    32 20 040 uzay
    33 21 041 !
    34 22 042 "
    35 23 043 #
    36 24 044 $
    37 25 045 %
    38 26 046 &
    39 27 047 "
    40 28 050 (
    41 29 051 )
    42 2A 052 *
    43 2B 053 +
    44 2C 054 ,
    45 2D 055 -
    46 056 .
    47 2F 057 /
    48 30 060 0
    49 31 061 1
    50 32 062 2
    51 33 063 3
    52 34 064 4
    53 35 065 5
    54 36 066 6
    55 37 067 7
    56 38 070 8
    57 39 071 9
    58 3 A 072 :
    59 3B 073 ;
    60 3C 074 <
    61 3 boyutlu 075 =
    62 076 >
    63 3F 077 ?
    AralıkaltıgenEkimkarakter
    64 40 100 @
    65 41 101 A
    66 42 102 B
    67 43 103 C
    68 44 104 D
    69 45 105 E
    70 46 106 F
    71 47 107 G
    72 48 110 H
    73 49 111 BEN
    74 4A 112 J
    75 4B 113 K
    76 4C 114 L
    77 4D 115 M
    78 116 N
    79 4F 117 Ö
    80 50 120 P
    81 51 121 Q
    82 52 122 R
    83 53 123 S
    84 54 124 T
    85 55 125 sen
    86 56 126 V
    87 57 127 W
    88 58 130 X
    89 59 131 Y
    90 5A 132 Z
    91 5B 133 [
    92 5C 134 \
    93 5 boyutlu 135 ]
    94 5E 136 ^
    95 5F 137 _
    96 60 140 `
    97 61 141 A
    98 62 142 B
    99 63 143 C
    100 64 144 D
    101 65 145 e
    102 66 146 F
    103 67 147 G
    104 68 150 H
    105 69 151 Ben
    106 6A 152 J
    107 6B 153 k
    108 6C 154 ben
    109 6D 155 M
    110 6E 156 N
    111 6F 157 Ö
    112 70 160 P
    113 71 161 Q
    114 72 162 R
    115 73 163 S
    116 74 164 T
    117 75 165 sen
    118 76 166 v
    119 77 167 w
    120 78 170 X
    121 79 171 y
    122 7A 172 z
    123 7B 173 {
    124 7C 174 |
    125 7D 175 }
    126 7E 176 ~
    127 7F 177 SİL

    Kolayca görebileceğiniz gibi, bu kodlamada yalnızca Latin harfleri ve İngilizce'de kullanılanlar temsil edilmektedir. Aritmetik ve diğer hizmet sembolleri de vardır. Ancak Rusça harfler, hatta Almanca veya Fransızca için özel Latin harfleri yoktur. Bunu açıklamak kolaydır - kodlama bir Amerikan standardı olarak geliştirilmiştir. Bilgisayarlar dünya çapında kullanılmaya başlandıkça diğer karakterlerin de kodlanması gerekti.

    Bunu yapmak için her bayttaki sekizinci bitin kullanılmasına karar verildi. Böylece, karakterleri kodlamak için kullanılabilecek 128 değer daha (80'den FF'ye) mevcuttu. Sekiz bitlik tablolardan ilki “genişletilmiş ASCII”dir ( genişletilmiş ASCII) - Batı Avrupa'nın bazı dillerinde kullanılan çeşitli Latin karakter varyantlarını içerir. Ayrıca sözde grafikler de dahil olmak üzere başka ek karakterleri de vardı.

    Sözde grafik karakterler, yalnızca metin karakterlerini görüntüleyerek bazı grafik görünümleri sağlamaya izin verir. Örneğin sözde grafik kullanarak, FAR Manager dosya yönetimi programı çalışır.

    Genişletilmiş ASCII tablosunda Rusça harfler yoktu. Rusya'da (eski adıyla SSCB) ve diğer eyaletlerde, 8 bitlik metin dosyalarında belirli "ulusal" karakterleri temsil etmeyi mümkün kılan kendi kodlamaları oluşturuldu - Polonya ve Çek dillerinin Latin harfleri, Kiril (Rus harfleri dahil) ve diğer alfabeler.

    Yaygınlaşan tüm kodlamalarda ilk 127 karakter (yani sekizinci bitin 0'a eşit olduğu bayt değerleri) ASCII ile aynıdır. Yani bir ASCII dosyası bu kodlamalardan herhangi birinde çalışır; İngiliz dilinin harfleri aynı şekilde temsil edilir.

    organizasyon ISO(Uluslararası Standardizasyon Organizasyonu - Uluslararası Standartlar Organizasyonu) bir grup standart benimsemiştir. ISO 8859. Farklı dil grupları için 8 bitlik kodlamaları tanımlar. Dolayısıyla ISO 8859-1, ABD ve Batı Avrupa için bir tablo olan Genişletilmiş ASCII'dir. Ve ISO 8859-5, Kiril (Rusça dahil) için bir tablodur.

    Ancak tarihsel nedenlerle ISO 8859-5 kodlaması tutmadı. Gerçekte, Rus dili için aşağıdaki kodlamalar kullanılır:

    Kod Sayfa 866 ( CP866), o da “DOS”, aynı zamanda “alternatif GOST kodlaması”. 1990'ların ortalarına kadar yaygın olarak kullanılan; şimdi sınırlı kullanımda. İnternetteki metinlerin dağıtımı için pratik olarak kullanılmaz.
    -KOI-8. 70'lerde ve 80'lerde geliştirildi. Rus İnternetinde posta mesajları göndermek için genel kabul görmüş bir standarttır. Ayrıca Linux da dahil olmak üzere Unix ailesinin işletim sistemlerinde yaygın olarak kullanılmaktadır. Rusça için tasarlanan KOI-8 versiyonuna denir KOI-8R; diğer Kiril dilleri için sürümler vardır (örneğin, KOI8-U, Ukrayna dilinin bir çeşididir).
    - Kod Sayfası 1251, CP1251, Windows-1251. Windows sisteminde Rusça dilini desteklemek için Microsoft tarafından geliştirilmiştir.

    CP866'nın ana avantajı, sözde karakterlerin Genişletilmiş ASCII ile aynı yerlerde korunmasıydı; bu nedenle, örneğin ünlü Norton Commander gibi yabancı metin programları değişiklik yapılmadan çalışabilir. CP866 şu anda metin pencerelerinde veya FAR Yöneticisi dahil tam ekran metin modunda çalışan Windows programları için kullanılmaktadır.

    CP866'daki metinler son yıllarda oldukça nadirdir (ancak Windows'ta Rusça dosya adlarını kodlamak için kullanılır). Bu nedenle, diğer iki kodlama üzerinde duracağız - KOI-8R ve CP1251.



    Gördüğünüz gibi, CP1251 kodlama tablosunda Rusça harfler alfabetik sıraya göre düzenlenmiştir (ancak YO harfi hariç). Bu düzenleme, bilgisayar programlarının alfabetik olarak sıralanmasını çok kolaylaştırır.

    Ancak KOI-8R'de Rus harflerinin sırası rastgele görünüyor. Ama aslında öyle değil.

    Birçok eski programda, metin işlenirken veya iletilirken 8. bit kayboluyordu. (Artık bu tür programlar pratikte "söndü", ancak 80'lerin sonunda ve 90'ların başında yaygındı). 8 bitlik bir değerden 7 bitlik bir değer elde etmek için, yüksek basamaklı rakamdan 8'i çıkarmak yeterlidir; örneğin, E1 61 olur.

    Şimdi KOI-8R'yi ASCII tablosuyla karşılaştırın (Tablo 1). Rus harflerinin Latin harfleriyle tam bir uyum içinde olduğunu göreceksiniz. Sekizinci bit kaybolursa, küçük Rus harfleri büyük Latin harflerine, büyük Rus harfleri küçük Latin harflerine dönüşür. Yani, KOI-8'deki E1, Rusça "A", ASCII'deki 61 ise Latince "a" dır.

    Böylece KOI-8, Rusça metnin okunabilirliğini 8. bit kaybıyla korumanıza izin verir. "Herkese merhaba", "ÖZEL WSEM" olur.

    Son zamanlarda hem kodlama tablosundaki karakterlerin alfabetik sıralaması hem de 8. bitin kaybı ile okunabilirlik belirleyici önemini yitirmiştir. Modern bilgisayarlardaki sekizinci bit, iletim veya işleme sırasında kaybolmaz. Ve alfabetik sıralama, kodların basit bir karşılaştırması değil, kodlama dikkate alınarak yapılır. (Bu arada CP1251 kodları tam olarak alfabetik sıralanmamıştır - Y harfi yerinde değildir).

    İnternet ile çalışırken (posta, Web sitelerinde gezinme) iki yaygın kodlama olduğu için, bazen Rusça metin yerine anlamsız bir dizi harf görebilirsiniz. Örneğin, "Ben SBYFEMHEL'im". Sadece "saygılarımla" kelimeleri; ancak CP1251 kodlamasında kodlanmışlar ve bilgisayar metni KOI-8 tablosuna göre çözmüştür. Aksine aynı kelimeler KOI-8'de kodlanmış olsaydı ve bilgisayar metni CP1251 tablosuna göre çözseydi, sonuç “U HCHBTSEOYEN” olurdu.

    Bazen bir bilgisayar Rusça harflerin şifresini çözer ve hatta Rus dili için tasarlanmamış bir tabloya göre olur. Ardından, Rus harfleri yerine anlamsız bir karakter dizisi belirir (örneğin, Doğu Avrupa dillerinin Latin harfleri); genellikle "timsah" olarak anılırlar.

    Çoğu durumda, modern programlar İnternet belgelerinin (e-postalar ve Web sayfaları) kodlamalarını kendi başlarına belirlemeyi başarır. Ancak bazen "yanlış ateşlerler" ve ardından garip Rus harfleri veya "timsah" dizileri görebilirsiniz. Kural olarak, böyle bir durumda gerçek metni görüntülemek için, program menüsünde kodlamayı manuel olarak seçmek yeterlidir.

    Makale için http://open-office.edusite.ru/TextProcessor/p5aa1.html sayfasındaki bilgiler kullanılmıştır.

    Siteden alınan malzeme:

    ASCII'yi yetkin bir şekilde kullanmak için, bu alandaki ve kodlama olanakları hakkındaki bilgileri genişletmek gerekir.

    Ne olduğunu?

    ASCII, bilgileri ve bazı kodları iletmek için bir bilgisayar klavyesinde yazılan basılı karakterler (bkz. Ekran görüntüsü #1) için bir kodlama tablosudur. Başka bir deyişle, alfabe ve ondalık basamaklar, gerekli bilgileri temsil eden ve taşıyan karşılık gelen karakterlere kodlanır.

    ASCII kodlaması Amerika'da geliştirildi, bu nedenle standart kodlama tablosu genellikle yaklaşık 128 karakter olmak üzere sayılarla birlikte İngiliz alfabesini içerir. Ama sonra makul bir soru ortaya çıkıyor: ulusal alfabenin kodlanması gerekliyse ne yapmalı?

    ASCII tablosunun diğer sürümleri, benzer sorunlarla başa çıkmak için geliştirilmiştir. Örneğin yabancı dil yapısına sahip diller için İngiliz alfabesinin harfleri ya kaldırılmış ya da bunlara ulusal alfabe şeklinde ek karakterler eklenmiştir. Bu nedenle, ASCII kodlamasında ulusal kullanım için Rusça harfler olabilir (bkz. Ekran görüntüsü No. 2).

    ASCII kodlaması nerede kullanılır?

    Bu kodlama sistemi sadece klavyede metin bilgisi yazmak için gerekli değildir. Grafiklerde de kullanılır. Örneğin, ASCII Art Maker programında, çeşitli uzantıların grafik görüntüleri bir ASCII karakter yelpazesinden oluşur (bkz. ekran görüntüsü #3).


    Kural olarak, bu tür programlar, grafik düzenleyicilerin işlevini yerine getiren, bir görüntüyü metne çeviren ve bir görüntüyü ASCII grafiklerine dönüştüren programlara ayrılabilir. Tanınmış ifade (veya aynı zamanda " gülümseyen insan yüzü”) ayrıca bir kodlama karakteri örneğidir.

    Bu kodlama yöntemi, bir HTML belgesi yazılırken veya oluşturulurken de istenebilir. Örneğin, ihtiyacınız olan belirli bir karakter kümesini girersiniz ve sayfanın kendisini görüntülerken bu koda karşılık gelen karakter görüntülenir.

    Diğer şeylerin yanı sıra, çok dilli bir site oluştururken bu tür bir kodlama gereklidir, çünkü şu veya bu ulusal tabloda yer almayan karakterlerin ASCII kodlarıyla değiştirilmesi gerekecektir. Okuyucu bilgi ve iletişim teknolojileri (BİT) ile doğrudan bağlantılıysa, aşağıdaki gibi sistemlere aşina olması onun için yararlı olacaktır:

    1. Taşınabilir karakter seti;
    2. Kontrol karakterleri;
    3. EBCDIC;
    4. VISCII;
    5. YUSCII;
    6. Unicode;
    7. ASCII sanatı;
    8. KOI-8.

    ASCII tablo özellikleri

    Herhangi bir sistematik program gibi, ASCII'nin de kendine has karakteristik özellikleri vardır. Örneğin, ondalık sistem (0'dan 9'a kadar olan rakamlar) ikili sisteme dönüştürülür (yani her ondalık basamak, sırasıyla ikili 288=1001000'e dönüştürülür).

    Üst ve alt sütunlarda bulunan harfler birbirinden yalnızca biraz farklıdır, bu da kaydı kontrol etme ve düzenleme karmaşıklığını önemli ölçüde azaltır.

    Tüm bu özellikleriyle ASCII kodlaması başlangıçta yedi bit olarak düşünülmesine rağmen sekiz bit olarak çalışmaktadır.

    ASCII'nin Microsoft Office programlarında kullanımı:

    Gerekirse, bu bilgi kodlama seçeneği Microsoft Not Defteri ve Microsoft Office Word'de kullanılabilir. Bu uygulamalar içinde belge ASCII formatında kaydedilebilir ancak bu durumda yazarken bazı işlevler mümkün olmayacaktır.

    Özellikle, kalın ve yarı kalın olarak vurgulamak mümkün olmayacaktır çünkü kodlama, genel görünüm ve biçimi değil, yalnızca yazılan bilgilerin anlamını korur. Aşağıdaki yazılım uygulamalarını kullanarak bu tür kodları bir belgeye ekleyebilirsiniz:

    • Microsoft Excel;
    • Microsoft Ön Sayfa;
    • Microsoft Bilgi Yolu
    • Microsoft OneNote
    • Microsoft Outlook;
    • Microsoft Powerpoint;
    • Microsoft projesi.

    Bu durumda, bu uygulamalarda bir ASCII kodu yazarken ALT klavye tuşunu basılı tutmanız gerektiği unutulmamalıdır.

    Elbette gerekli tüm kodlar daha uzun ve detaylı bir çalışma gerektiriyor ancak bu, bugünkü yazımızın kapsamı dışında. Umarım sizin için gerçekten faydalı olmuştur.

    Yakında görüşürüz!

    İyi kötü