Karakter kodlaması - Character encoding

ASCII olarak kodlanmış "Wikipedia" kelimesini içeren delikli bant . Bir deliğin varlığı ve yokluğu sırasıyla 1 ve 0'ı temsil eder; örneğin, "W", "1010111" olarak kodlanmıştır.

Bilgi işlem , veri depolama ve veri iletiminde , karakter kodlaması , dijital temsil için her karaktere bir sayı atayan bir tür kodlama sistemi tarafından bir karakter repertuarını temsil etmek için kullanılır . Soyutlama düzeyine ve bağlama bağlı olarak , karşılık gelen kod noktaları ve elde edilen kod alanı, bit desenleri , sekizli , doğal sayılar , elektrik darbeleri veya benzeri herhangi bir şey olarak kabul edilebilir . Hesaplamada , veri depolamada ve metinsel verilerin iletiminde bir karakter kodlaması kullanılır . "Karakter kümesi", "karakter haritası", " kod kümesi" ve " kod sayfası " terimlerle ilişkilidir, ancak aynı değildir.

Optik veya elektrikli telgrafla ilişkili ilk karakter kodları , bazen yalnızca büyük harfler , sayılar ve bazı noktalama işaretleriyle sınırlı olmak üzere, yazılı dillerde kullanılan karakterlerin yalnızca bir alt kümesini temsil edebilirdi . Modern bilgisayar sistemlerinde verilerin dijital temsilinin düşük maliyeti, birçok yazılı dilde kullanılan karakterlerin çoğunu temsil eden daha ayrıntılı karakter kodlarına ( Unicode gibi ) izin verir . Uluslararası kabul görmüş standartları kullanan karakter kodlaması, elektronik biçimde dünya çapında metin değişimine izin verir.

Tarih

Karakter kodlarının tarihi, bir zamanlar yeni olan elektriksel araçlar kullanılarak, belirli bir mesafeden makine aracılı karakter tabanlı sembolik bilgilere yönelik gelişen ihtiyacı göstermektedir. En eski kodlar, Bacon'un şifresi , Braille , Uluslararası denizcilik işaret bayrakları ve bir Çin telgraf kodu için Çince karakterlerin 4 basamaklı kodlaması gibi manuel ve elle yazılmış kodlama ve şifreleme sistemlerine dayanıyordu ( Hans Schjellerup , 1869). Elektrik ve elektro-mekanik tekniklerin benimsenmesiyle bu ilk kodlar, eski makinelerin yeni yeteneklerine ve sınırlamalarına uyarlandı. 1840'larda tanıtılan en eski elektrikle iletilen karakter kodu olan Mors kodu , değişken uzunlukta kodlar oluşturmak için dört "sembol" (kısa sinyal, uzun sinyal, kısa boşluk, uzun boşluk) sistemini kullandı. Mors kodunun bazı ticari kullanımları makine yoluyla olmasına rağmen, genellikle bir telgraf anahtarında elle oluşturulan ve kulakla deşifre edilebilen manuel bir kod olarak kullanıldı ve amatör radyo ve havacılık kullanımında devam etti. Çoğu kod, karakter başına sabit uzunlukta veya sabit uzunluktaki kodların değişken uzunluklu dizilerinden oluşur (örn. Unicode ).

Karakter kodlama sistemlerinin yaygın örnekleri arasında Mors kodu , Baudot kodu , Bilgi Değişimi için Amerikan Standart Kodu ( ASCII ) ve Unicode bulunur . İyi tanımlanmış ve genişletilebilir bir kodlama sistemi olan Unicode , önceki karakter kodlamalarının çoğunun yerini almıştır, ancak bugüne kadar kod geliştirmenin yolu oldukça iyi bilinmektedir.

Beş bitlik bir kodlama olan Baudot kodu , 1870'de Émile Baudot tarafından oluşturulmuş , 1874'te patenti alınmış, 1901'de Donald Murray tarafından modifiye edilmiş ve 1930'da CCITT tarafından Uluslararası Telgraf Alfabesi No. 2 (ITA2) olarak standartlaştırılmıştır. " ITA2'ye ve onun birçok çeşidine hatalı bir şekilde uygulandı. ITA2 birçok eksiklikten muzdaripti ve çoğu ekipman üreticisi tarafından "iyileştirildi" ve bazen uyumluluk sorunları yarattı. 1959'da ABD ordusu , ABD Ordusu Sinyal Birlikleri tarafından tanıtılan altı veya yedi bitlik bir kod olan Fieldata kodunu tanımladı . Fieldata, o zamanlar modern olan birçok sorunu ele alırken (örneğin, makine harmanlaması için düzenlenmiş harf ve rakam kodları), Fieldata amaçlarının gerisinde kaldı ve kısa ömürlü oldu. 1963'te, Fieldata'nın eksikliklerinin çoğunu ele alan ilk ASCII (Amerikan Bilgi Değişimi Standart Kodu) kodu (X3.4-1963) ASCII komitesi (Fieldata komitesinin en az bir üyesini, WF Leubbert'i içeriyordu) yayınladı (X3.4-1963). , daha basit bir kod kullanarak. Belirli sayısal aralıklardaki harmanlanabilir karakter kümeleri gibi değişikliklerin çoğu incelikliydi. ASCII63, endüstri tarafından yaygın olarak benimsenen bir başarıydı ve 1967 ASCII kodunun (küçük harfler ekleyen ve bazı "kontrol kodu" sorunlarını gideren) takip eden sayısıyla ASCII67 oldukça geniş bir şekilde kabul edildi. ASCII67'nin Amerikan merkezli doğası, Avrupa ECMA-6 standardında bir şekilde ele alındı .

EBCDIC karakter setli Hollerith 80 sütunlu delikli kart

Herman Hollerith , nüfus sayımı verilerini analiz etmek için 19. yüzyılın sonlarında delikli kart veri kodlamasını icat etti. Başlangıçta, her delik konumu farklı bir veri öğesini temsil ediyordu, ancak daha sonra sayısal bilgiler, alt sıralar 0 ila 9 arasında numaralandırılarak ve bir sütundaki satır numarasını temsil eden bir zımba ile kodlandı. Daha sonra alfabetik veriler, sütun başına birden fazla zımbaya izin verilerek kodlanmıştır. Temsil edilen elektromekanik tablolama makineleri , kartların makine boyunca hareketine göre darbelerin zamanlaması ile dahili olarak tarihlendirilir. Ne zaman IBM elektronik işleme gitti ile başlayan IBM 603 Elektronik Çarpan, bu delikli kart koduna bağlıydı ikili kodlama düzenleri çeşitli kullanılır.

IBM'in 'ın ikili kodlanmış ondalık ( BCD ) erken 1953 olarak olarak IBM tarafından kullanılan bir altı bitlik kodlama düzeni oldu 702 ve 704 bilgisayarlar ve içinde onun daha sonraki 7000 Serisi ve 1400 serisi yanı sıra ilişkili çevre birimleri içinde. Delikli kart kodu o zaman kullanımda sadece rakamlara, büyük İngilizce harflere ve birkaç özel karaktere izin verdiğinden, 6 bit yeterliydi. BCD, mevcut basit dört bitlik sayısal kodlamayı alfabetik ve özel karakterleri içerecek şekilde genişletti ve bunu zaten yaygın olarak kullanılan delikli kart kodlamasına kolayca eşledi. IBM'in kodları öncelikle IBM ekipmanıyla kullanıldı; dönemin diğer bilgisayar satıcılarının genellikle 6 bitlik kendi karakter kodları vardı, ancak genellikle IBM ekipmanında üretilen bantları okuma yeteneğine sahipti. BCD oldu öncü IBM 'in genişletilmiş ikili kodlanmış ondalık değişim kodu (genellikle EBCDIC olarak kısaltılır), için 1963 yılında geliştirilen sekiz bitlik kodlama şeması , IBM System / 360 küçük harfler de dahil olmak üzere daha geniş bir karakter kümesi özellikli.

Bu tür kümelerin sınırlamaları kısa sürede ortaya çıktı ve bunları genişletmek için bir dizi ad hoc yöntem geliştirildi. Doğu Asya alfabelerinin CJK ailesi de dahil olmak üzere farklı diller için daha fazla yazı sistemini destekleme ihtiyacı , çok daha fazla sayıda karakter için destek gerektirdi ve önceki geçici yaklaşımlardan ziyade karakter kodlamasına sistematik bir yaklaşım gerektirdi .

1980'lerdeki araştırmacılar, evrensel olarak değiştirilebilir karakter kodlamaları geliştirmeye çalışırken, bir yandan ek karakterleri yerleştirmek için daha fazla bit eklemenin gerekli göründüğü, ancak diğer yandan nispeten küçük karakter kümesinin kullanıcıları için ikilemle karşı karşıya kaldılar. Latin alfabesinin (hala bilgisayar kullanıcılarının çoğunluğunu oluşturan) bu ek bitler, o zamanlar kıt ve pahalı bilgi işlem kaynaklarının muazzam bir israfıydı (bu tür kullanıcılar için her zaman sıfırlanacakları için). 1985'te, ortalama bir kişisel bilgisayar kullanıcısının sabit disk sürücüsü yalnızca yaklaşık 10 megabayt depolayabiliyordu ve toptan satış pazarında yaklaşık 250 ABD Dolarına (ve perakende olarak satın alınırsa çok daha yüksek) maliyeti vardı, bu nedenle her şeyi yapmak çok önemliydi. bit sayısı.

Sonunda bulunan ve Unicode'da geliştirilen uzlaşma çözümü, her karakterin her zaman doğrudan belirli bir bit dizisine karşılık gelmesi gerektiği varsayımını (telgraf kodlarına kadar uzanan) kırmaktı. Bunun yerine, karakterler ilk önce kod noktaları adı verilen soyut sayılar biçiminde evrensel bir ara temsile eşlenir . Kod noktaları daha sonra çeşitli şekillerde ve bağlama bağlı olarak karakter başına çeşitli varsayılan bit sayılarıyla (kod birimleri) temsil edilecektir. 8 bitlik birimler için 256'nın üzerinde olduğu gibi, kod biriminin uzunluğundan daha yüksek kod noktalarını kodlamak için çözüm, bir kaçış dizisinin sonraki bitlerin daha yüksek bir kod noktası olarak ayrıştırılması gerektiğini bildireceği değişken genişlikli kodlamaları uygulamaktı .

terminoloji

Karakter kodlaması ile ilgili terminoloji
Eski Hangul (NG3).svg için KB Dubeolsik
  • Bir karakter semantik değerine sahip metnin minimal birimidir.
  • Bir karakter kümesi birden çok dilde tarafından kullanılabilecek karakterler topluluğudur. Örnek: Latin karakter kümesi İngilizce ve çoğu Avrupa dili tarafından kullanılır, ancak Yunanca karakter kümesi yalnızca Yunanca tarafından kullanılır.
  • Bir kodlanmış karakter kümesi her karakter benzersiz bir sayıya karşılık gelen bir karakter setidir.
  • Bir kod noktası kodlanmış bir karakter kümesinin karakter kümesi ya da kod alanı herhangi bir izin verilen bir değerdir.
  • Bir kod alanı değerleri kod noktaları olan bir tamsayı aralığı
  • Bir kod birimi , belirli bir kodlama biçiminde bir repertuarın her karakterini kodlamak için kullanılan bir bit dizisidir. Bu, bazı belgelerde kod değeri olarak anılır .
Karakter repertuarı (soyut karakter kümesi)

Karakter repertuarı, Latince, Kiril, Çince, Korece, Japonca, İbranice ve Aramice dahil olmak üzere çok çeşitli yazılarda bulunan bir milyondan fazla karakterden oluşan soyut bir dizidir.

Müzik notasyonu gibi diğer semboller de karakter repertuarına dahil edilmiştir. Hem Unicode hem de GB18030 standartlarının bir karakter repertuarı vardır. Bir standarda yeni karakterler eklendikçe, diğer standart, pariteyi korumak için bu karakterleri de ekler.

Kod birimi boyutu, belirli kodlama için bit ölçümüne eşdeğerdir:

Kod birimi örneği: "abc" harflerinden oluşan ve ardından U+10400 𐐀 DESERET CAPITAL LETTER LONG I (1 char32_t, 2 char16_t veya 4 char8_t ile temsil edilir) harflerinden oluşan bir dize düşünün . Bu dize şunları içerir:

  • dört karakter;
  • dört kod noktası
  • herhangi biri:
    UTF-32'de dört kod birimi (00000061, 00000062, 00000063, 00010400)
    UTF-16'da beş kod birimi (0061, 0062, 0063, d801, dc00) veya
    UTF-8'de yedi kod birimi (61, 62, 63, f0, 90, 90, 80).

Unicode'da bir karaktere atıfta bulunma kuralı, 'U+' ile başlamak ve ardından onaltılık kod noktası değeriyle başlamaktır. Unicode standardı için geçerli kod noktalarının aralığı, U+0000 ila U+10FFFF, dahil, 17 düzleme bölünmüştür ve 0 ila 16 arası sayılarla tanımlanır. U+0000 ila U+FFFF aralığındaki karakterler 0 düzlemindedir, denilen Temel Dilde Düzlem (BMP). Bu düzlem en sık kullanılan karakterleri içerir. Diğer düzlemlerde U+10000 ila U+10FFFF aralığındaki karakterlere tamamlayıcı karakterler denir .

Aşağıdaki tablo, kod noktası değerlerinin örneklerini gösterir:

Karakter Unicode kod noktası glif
Latince A U+0041 Α
Latince keskin S U+00DF ß
Doğu için Han U+6771
ve işareti U+0026 &
Ters ünlem işareti U+00A1 ¡
Bölüm işareti U+00A7 §

Bir kod noktası, bir dizi kod birimiyle temsil edilir. Eşleme, kodlama ile tanımlanır. Bu nedenle, bir kod noktasını temsil etmek için gereken kod birimlerinin sayısı kodlamaya bağlıdır:

  • UTF-8: kod noktaları bir, iki, üç veya dört kod birimi dizisiyle eşlenir.
  • UTF-16: kod birimleri, 8 bitlik kod birimlerinin iki katı uzunluğundadır. Bu nedenle, skaler değeri U+10000'den küçük olan herhangi bir kod noktası, tek bir kod birimi ile kodlanır. U+10000 veya daha yüksek bir değere sahip kod noktalarının her biri iki kod birimi gerektirir. Bu kod birimi çiftlerinin UTF-16'da benzersiz bir terimi vardır: "Unicode vekil çiftler".
  • UTF-32: 32 bit kod birimi, her kod noktasının tek bir kod birimi olarak temsil edilmesi için yeterince büyüktür.
  • GB18030: Küçük kod birimleri nedeniyle, kod noktası başına birden çok kod birimi yaygındır. Kod noktaları bir, iki veya dört kod birimine eşlenir.

Unicode kodlama modeli

Unicode ve paralel standardı ISO/IEC 10646 Evrensel Karakter Seti birlikte modern, birleşik bir karakter kodlaması oluşturur. Karakterleri doğrudan sekizlilere ( bayt ) eşlemek yerine , hangi karakterlerin mevcut olduğunu, bunlara karşılık gelen doğal sayıları ( kod noktaları ), bu sayıların bir dizi sabit boyutlu doğal sayı (kod birimleri) olarak nasıl kodlandığını ve son olarak bunların nasıl olduğunu ayrı ayrı tanımlarlar. birimler sekizli akışı olarak kodlanmıştır. Bu ayrıştırmanın amacı, çeşitli şekillerde kodlanabilen evrensel bir karakter kümesi oluşturmaktır. Bu modeli doğru bir şekilde tanımlamak için "karakter kümesi" ve "karakter kodlaması"ndan daha kesin terimler gerekir. Modern modelde kullanılan terimler şunlardır:

Bir karakter repertuarı , bir sistemin desteklediği tam bir soyut karakter kümesidir. Repertuar kapalı olabilir, yani yeni bir standart oluşturmadan hiçbir eklemeye izin verilmez (ASCII'de ve ISO-8859 serisinin çoğunda olduğu gibi) veya eklemelere izin vererek açık olabilir (Unicode'da olduğu gibi ve sınırlı bir ölçüde Windows kod sayfaları ). Belirli bir repertuardaki karakterler, yazı sistemlerinin temel bilgi birimlerine nasıl bölüneceği konusunda verilen kararları yansıtır. Latin , Yunan ve Kiril alfabelerinin temel çeşitleri harflere, rakamlara, noktalama işaretlerine ve boşluk gibi birkaç özel karaktere bölünebilir ; bunların tümü, aynı sırayla görüntülenen basit doğrusal dizilerde düzenlenebilmektedir. okuman. Ancak bu alfabelerde bile, aksan işaretleri bir karmaşıklık oluşturur: ya bir harf ve aksan (önceden oluşturulmuş bir karakter olarak bilinir) içeren tek bir karakterin parçası olarak ya da ayrı karakterler olarak kabul edilebilirler. İlki çok daha basit bir metin işleme sistemine izin verir, ancak ikincisi metinde herhangi bir harf/aksan kombinasyonunun kullanılmasına izin verir. Ligatürler de benzer sorunlar yaratır . Arapça ve İbranice gibi diğer yazı sistemleri, farklı durumlar için farklı şekillerde birleştirilen iki yönlü metin ve glifler gibi şeyleri barındırma ihtiyacı nedeniyle daha karmaşık karakter repertuarlarıyla temsil edilir .

Bir kodlanmış karakter seti (CCS) a, fonksiyon karakter haritalar kod noktalarına (her bir kod noktası için tek bir karakteri temsil eder). Örneğin, belirli bir repertuarda, Latin alfabesindeki büyük "A" harfi, 65 kod noktası, "B" ila 66 karakteri vb. ile temsil edilebilir. Birden çok kodlanmış karakter kümesi aynı repertuarı paylaşabilir; örneğin, ISO/IEC 8859-1 ve IBM kod sayfaları 037 ve 500'ün tümü aynı repertuarı kapsar ancak bunları farklı kod noktalarına eşler.

Bir karakter kodlama formu (CEF), sayıları sabit uzunlukta bit dizileri olarak temsil eden bir sistemde (yani pratik olarak herhangi bir bilgisayar sistemi) depolamayı kolaylaştırmak için kod noktalarının kod birimlerine eşlenmesidir . Örneğin, sayısal bilgileri 16 bitlik birimlerde depolayan bir sistem, her birimde yalnızca 0 ila 65.535 kod noktalarını doğrudan temsil edebilir, ancak daha büyük kod noktaları (örneğin, 65.536 ila 1,4 milyon) birden çok 16 bitlik birimler kullanılarak temsil edilebilir. Bu yazışma bir CEF tarafından tanımlanır.

Daha sonra, bir karakter kodlama şeması (CES), sekizli tabanlı bir dosya sisteminde depolamayı veya sekizli tabanlı bir ağ üzerinden iletimi kolaylaştırmak için kod birimlerinin bir sekizli dizisine eşlenmesidir. Basit karakter kodlama şemaları arasında UTF-8 , UTF-16BE , UTF-32BE , UTF-16LE veya UTF-32LE bulunur ; UTF-16 , UTF-32 ve ISO/IEC 2022 gibi bileşik karakter kodlama şemaları, bayt sıra işaretleri veya kaçış dizileri kullanarak birkaç basit şema arasında geçiş yapar ; sıkıştırma şemaları, kod birimi başına kullanılan bayt sayısını en aza indirmeye çalışır ( SCSU , BOCU ve Punycode gibi ).

Her ne kadar UTF-32BE basit CES olup, Unicode ile çalışan bir çok sistem birini kullanabilirsiniz UTF-8 , olduğu geriye doğru uyumlu sabit genişlikte ASCII ile ve değişken genişlikte sekizli dizileri, ya da bir Unicode kod noktaları haritalar UTF-16BE olduğu geri sabit genişlikli UCS-2BE ile uyumludur ve Unicode kod noktalarını 16 bitlik kelimelerin değişken genişlikli dizileriyle eşler. Ayrıntılı bir tartışma için Unicode kodlamalarının karşılaştırmasına bakın .

Son olarak, özellikle aynı karakter olarak Unicode'da 'birleştirilmiş' bölgesel varyantlar olduğunda, bir Unicode karakterinin belirli varyantını seçmek için ek bilgi sağlayan daha yüksek seviyeli bir protokol olabilir . Bir örnek, xml:lang XML özniteliğidir.

Unicode modeli , tüm CCS, CEF ve CES katmanlarını kapsayan bir karakter dizisini bir bayt dizisine doğrudan atayan tarihsel sistemler için karakter haritası terimini kullanır .

Karakter setleri, karakter haritaları ve kod sayfaları

Tarihsel olarak, "karakter kodlaması", "karakter haritası", "karakter kümesi" ve " kod sayfası " terimleri bilgisayar biliminde eşanlamlıydı , çünkü aynı standart bir karakter repertuarını ve bunların bir dizi akışına nasıl kodlanacağını belirtecektir. kod birimleri – genellikle kod birimi başına tek bir karakterle. Ancak, standart kurumlarının birçok farklı kodlama sistemini yazarken ve birleştirirken kesin terminolojiyi kullanma çabaları nedeniyle, şimdi terimler ilişkili ancak farklı anlamlara sahiptir. Ne olursa olsun, terimler hala birbirinin yerine kullanılmaktadır ve karakter seti neredeyse her yerde bulunmaktadır.

Bir " kod sayfası " genellikle bayt yönelimli bir kodlama anlamına gelir , ancak birçok karakterin bu kod sayfalarının çoğunda veya tümünde aynı kodları paylaştığı bazı kodlamalar (farklı komut dosyalarını kapsayan) ile ilgili olarak . Bilinen kod sayfası takımları "Windows" (Windows-1252 tabanlı) ve "IBM"/"DOS" ( kod sayfası 437 tabanlıdır ), ayrıntılar için Windows kod sayfasına bakın. Kod sayfaları olarak adlandırılan kodlamaların tümü olmasa da çoğu, tek baytlı kodlamalardır (ancak bayt boyutunda sekizliye bakın .)

IBM'in Karakter Veri Temsil Mimarisi (CDRA) , her biri çeşitli şekillerde "karakter kümesi", "karakter kümesi", "kod sayfası" veya "CHARMAP" olarak adlandırılan kodlanmış karakter kümesi tanımlayıcılarına ( CCSID'ler ) sahip varlıkları belirtir.

"Kod sayfası" terimi, genellikle daha geniş yerel ayarlar bağlamında "charmap"ın tercih edildiği Unix veya Linux'ta kullanılmaz.

Bir " kodlanmış karakter kümesinin " aksine , bir "karakter kodlaması", soyut karakterlerden kod sözcüklerine uzanan bir haritadır . HTTP (ve MIME ) dilindeki bir "karakter kümesi", karakter kodlamasıyla aynıdır (ancak CCS ile aynı değildir).

" Eski kodlama" bazen eski karakter kodlamalarını karakterize etmek için kullanılan bir terimdir, ancak anlam belirsizliği vardır. Kullanımının çoğu, tüm Unicode kod noktalarını kapsamayan veya daha genel olarak, biraz farklı bir karakter repertuarı kullanan kodlamalara atıfta bulunduğu Unicodification bağlamındadır : bir Unicode karakterini temsil eden birkaç kod noktası veya tam tersi (bkz. kod sayfası 437 ). Bazı kaynaklar, yalnızca Unicode'dan önce geldiği için bir kodlamaya eski olarak atıfta bulunur . Tüm Windows kod sayfaları, hem Unicode'dan önce geldikleri hem de 2 21 olası Unicode kod noktasının tümünü temsil edemedikleri için genellikle eski olarak adlandırılır .

Karakter kodlama çevirisi

Birçok karakter kodlama yönteminin kullanımda olmasının (ve arşivlenmiş verilerle geriye dönük uyumluluk ihtiyacının) bir sonucu olarak, bir veri dönüştürme biçimi olarak verileri kodlama şemaları arasında çevirmek için birçok bilgisayar programı geliştirilmiştir . Bunlardan bazıları aşağıda alıntılanmıştır.

Çapraz platform :

  • Web tarayıcıları – çoğu modern web tarayıcısı, otomatik karakter kodlama algılama özelliğine sahiptir. Örneğin Firefox 3'te Görünüm/Karakter Kodlaması alt menüsüne bakın.
  • iconv - kodlamaları dönüştürmek için program ve standartlaştırılmış API
  • luit - giriş ve çıkış kodlamasını etkileşimli olarak çalışan programlara dönüştüren program
  • convert_encoding.py – Metin dosyalarını rastgele kodlamalar ve satır sonları arasında dönüştürmek için Python tabanlı yardımcı program.
  • decodeh.py - bir dizenin kodlamasını buluşsal olarak tahmin etmek için algoritma ve modül.
  • Unicode için Uluslararası Bileşenler – Karakter kümesi dönüştürmesi gerçekleştirmek için bir dizi C ve Java kitaplığı. uconv, ICU4C'den kullanılabilir.
  • chardet – Bu, Mozilla otomatik kodlama algılama kodunun Python bilgisayar diline çevirisidir .
  • Unix dosya komutunun daha yeni sürümleri, karakter kodlamasının temel bir algılamasını yapmaya çalışır ( Cygwin'de de mevcuttur ).
  • charsetC++ /kullanıcı tanımlı akışlar arasında dönüştürmek için basit arabirime sahip C++ şablon kitaplığı. charset birçok karakter kümesi tanımladı ve endianness desteğiyle Unicode formatlarını kullanmanıza izin verir .

Unix benzeri :

  • cmv – dosya adlarını dönüştürmek için basit bir araç.
  • convmv – bir dosya adını bir kodlamadan diğerine dönüştürür.
  • cstocs - Çek ve Slovakça dilleri için dosya içeriğini bir kodlamadan diğerine dönüştürün.
  • enca - verilen metin dosyaları için kodlamaları analiz eder.
  • recode – dosya içeriğini bir kodlamadan diğerine dönüştürün
  • utrac - dosya içeriğini bir kodlamadan diğerine dönüştürün.

Pencereler :

  • Encoding.Convert – .NET API
  • MultiByteToWideChar/WideCharToMultiByte – ANSI'den Unicode'a ve Unicode'dan ANSI'ye dönüştürme
  • cscvt - karakter kümesi dönüştürme aracı
  • enca - verilen metin dosyaları için kodlamaları analiz eder.

Ayrıca bakınız

Ortak karakter kodlamaları

Referanslar

daha fazla okuma

Dış bağlantılar