Kaçış karakteri - Escape character

Gelen bilgi işlem ve telekomünikasyon , bir kaçış karakteri bir olan karakter bir karakter dizisindeki aşağıdaki karakterleri üzerine alternatif bir yorum çağırır. Bir kaçış karakteri, meta karakterlerin özel bir durumudur . Genel olarak, bir şeyin kaçış karakteri olup olmadığı kararı bağlama bağlıdır.

Gelen telekomünikasyon alanında, kaçış karakterleri Aşağıdaki karakterler farklı şekilde kodlanmış olduğunu belirtmek için kullanılır. Bu, aksi takdirde fark edilecek ve temeldeki telekomünikasyon donanımı tarafından uygulanacak kontrol karakterlerini değiştirmek için kullanılır . Bu bağlamda, kaçış karakterlerinin kullanımına genellikle alıntı yapma denir .

Tanım

Bir kaçış karakterinin kendi anlamı olmayabilir, bu nedenle tüm kaçış dizileri iki veya daha fazla karakterden oluşur.

Kaçış karakterleri, birçok programlama dili, veri formatı ve iletişim protokolü için sözdiziminin bir parçasıdır . Belirli bir alfabe için bir kaçış karakterinin amacı, önek kaçış karakteri olmadan meydana gelen aynı karakterlerden farklı şekilde yorumlanması gereken karakter dizilerini ( kaçış dizileri olarak adlandırılır ) başlatmaktır .

Kaçış dizilerinin işlevleri şunları içerir:

  • Doğrudan alfabe ile temsil edilemeyen aygıt komutları veya özel veriler gibi sözdizimsel bir varlığı kodlamak için.
  • Geçerli bağlamda yazılamayan veya istenmeyen bir yoruma sahip olabilecek, karakter alıntısı olarak adlandırılan karakterleri temsil etmek için . Bu durumda, bir kaçış dizisi, bir kaçış karakterinin kendisinden ve bir "alıntılanan" karakterden oluşan bir digraftır .

Kontrol karakteri

Genel olarak, bir kaçış karakteri (aygıt) kontrol karakterlerinin özel bir durumu değildir veya bunun tersi de geçerlidir. Kontrol karakterlerini grafik olmayan veya bir çıktı aygıtı (örneğin yazıcı veya metin terminali ) için özel bir anlamı olan olarak tanımlarsak , bu aygıt için herhangi bir kaçış karakteri bir kontrol karakteridir. Ancak programlamada kullanılan kaçış karakterleri ( ters eğik çizgi , "\" gibi) grafiktir, dolayısıyla kontrol karakterleri değildir. Tersine, ASCII "kontrol karakterlerinin" çoğu (hepsi değil) izolasyonda bazı kontrol işlevlerine sahiptir, bu nedenle kaçış karakterleri değildirler.

Birçok programlama dilinde, bir kaçış karakteri, kontrol karakterleri olarak adlandırılan bazı kaçış dizilerini de oluşturur. Örneğin, satır sonu kaçış dizisine sahiptir \n.

Örnekler

JavaScript

JavaScript, \(ters eğik çizgiyi) aşağıdakiler için kaçış karakteri olarak kullanır :

  • \' tek alıntı
  • \" çift ​​alıntı
  • \\ ters eğik çizgi
  • \n Yeni hat
  • \r satırbaşı
  • \t sekme
  • \b geri almak
  • \f form besleme
  • \v(dikey sekme Internet Explorer 9 ve üstü davranır '\volarak 'vyerine dikey bir sekmenin ( '\x0Bçapraz tarayıcı uyumluluğu bir sorun olacaksa). kullanmak \x0Byerine \v.)
  • \0 boş karakter (U+0000 NULL) (yalnızca sonraki karakter ondalık basamak değilse; aksi takdirde sekizlik bir kaçış dizisiyse)
  • \xFF onaltılık bayt "FF" ile temsil edilen karakter

JSON dizelerinde \vve \0çıkışlarına izin verilmediğini unutmayın .

ASCII kaçış karakteri

ASCII "kaçış" karakteri ( sekizli : \033, onaltılık : \x1B, veya ^[, veya ondalık olarak 27) birçok çıktı aygıtında kontrol dizisi veya kaçış dizisi olarak adlandırılan bir dizi karakteri başlatmak için kullanılır. Tipik olarak, önce kaçış karakteri, aşağıdaki karakterlerin düz karakterler yerine bir kontrol dizisi olarak yorumlanacağı konusunda cihazı uyarmak için böyle bir sırayla gönderilir, ardından bazı ayrıntılı eylemleri belirtmek için bir veya daha fazla karakter gelir, ardından cihaz, karakterleri normal şekilde yorumlamaya geri döner. Örneğin, dizisi ve ^[ardından yazdırılabilir karakterler [2;10H, bir DEC VT102 terminalinin imlecini ekranın 2. satırının 10. hücresine taşımasına neden olur . Bu daha sonra ANSI X3.64 standardının kapsadığı ANSI kaçış kodlarına geliştirildi . Kaçış karakteri ayrıca Hewlett Packard Yazıcı Komut Dili'ndeki her komut dizisini başlatır .

"Kaçış karakteri" terimine erken bir referans , ASCII karakter seti üzerindeki çalışması sırasında bu mekanizmayı icat etmesiyle tanınan Bob Bemer'in IBM teknik yayınlarında bulunur .

Kaçış tuşu genellikle standart PC klavyelerde bulunur. Ancak, PDA'lar için klavyelerde ve öncelikle ASCII iletişimleri için tasarlanmamış diğer cihazlarda genellikle yoktur. DEC VT220 serisi, ana tuş takımının üzerindeki tuşlardan birini kullanmak yerine özel bir Esc tuşuna sahip olmayan birkaç popüler klavyeden biriydi. Gelen kullanıcı arayüzleri 1970'lerin 1980'lerin bir kaçış karakteri olarak bu anahtarı kullanmak nadir değildir, ama modern masaüstü bilgisayarlar, söz konusu kullanım düşürülür. Bazen anahtar AltMode ile tanımlandı (alternatif mod için). Özel bir anahtar olmasa bile, [aynı anda basılı tutarken yazarak kaçış karakter kodu oluşturulabilir Ctrl.

Programlama ve veri formatları

Birçok modern programlama dili , bir dize değişmezi için sınırlayıcı" olarak çift ​​tırnak karakterini ( ) belirtir . Ters eğik çizgi ( ) kaçış karakteri tipik bir dize içinde ya dize (gömülü çift tırnak karakteri anlamını değiştirerek çift tırnak dahil etmek iki yol sağlar hale veya dahil karakterlerin bir dizisi anlamını değiştirerek) bir çift tırnak karakterinin onaltılık değeri ( olur ). \\""\x22"

C , C++ , Java ve Ruby, tümü tam olarak aynı iki ters eğik çizgi kaçış stiline izin verir. PostScript dil ve Microsoft zengin metin biçimi de ters eğik çizgi kaçar kullanırlar. Alıntılanan-yazdırılabilir kodlama kullanır eşittir işareti çıkış karakteri olarak.

URL ve URI , ASCII olmayan karakterlerde olduğu gibi özel bir anlamı olan karakterleri alıntılamak için % - çıkışlarını kullanır. Ve işareti ( &) karakteri , SGML'de ve HTML ve XML gibi türetilmiş biçimlerde bir kaçış karakteri olarak kabul edilebilir .

Bazı programlama dilleri ayrıca özel karakterleri bir kaçış karakteri gerektirmeden hazır değerlerde temsil etmenin başka yollarını da sağlar (bkz. örn. sınırlayıcı çarpışma ).

iletişim protokolleri

Noktadan Noktaya Protokolü (PPP) kullanır 0x7D sekizli ( \175: ya ASCII }çıkış karakteri olarak). Sekizli hemen edilmelidir aşağıdaki XORed tarafından 0x20daha yüksek bir seviye protokol geçirilmeden önce. Bu, hem 0x7Dkendisine hem de kontrol karakterine 0x7E(PPP'de bir çerçevenin başlangıcını ve sonunu işaretlemek için kullanılır), bu sekizlilerin PPP tarafından kapsüllenen daha yüksek seviyeli bir protokol tarafından iletilmesi gerektiğinde ve aynı zamanda anlaşma yapıldığında diğer sekizlilere uygulanır. bağlantı kurulur. Yani, daha yüksek seviyeli bir protokol iletmek istediğinde 0x7D, dizi olarak iletilir 0x7D 0x5Dve 0x7Eolarak iletilir 0x7D 0x5E.

Bourne kabuğu

In Bourne kabuğu (sh), yıldız işareti ( *) ve soru işareti ( ?) karakterleri olan Joker karakterleri aracılığıyla genişletilmiş globbing . Bir önceki kaçış karakteri olmadan, an *, çalışma dizinindeki , ancak ve ancak bu tür dosyalar varsa , bir nokta ile başlamayan tüm dosyaların adlarına genişler , aksi takdirde *genişletilmeden kalır. Bu nedenle, kelimenin tam anlamıyla "*" olarak adlandırılan bir dosyaya atıfta bulunmak için, kabuğun önüne bir ters eğik çizgi ( \) koyarak onu bu şekilde yorumlamaması söylenmelidir . Bu, yıldız işaretinin ( *) yorumunu değiştirir . Karşılaştırmak:

 
rm *    # delete all files in the current directory

rm \*   # delete the file named *

Windows Komut İstemi

Windows komut satırı yorumlayıcısı bir kullanan şapka karakteri ( ^özel anlamlara sahip ayrılmış karakterlerden kurtulmak için) (özellikle: &, |, (, ), <, >, ^). DOS komut satırı yorumlayıcısı benzer bir sözdizimi sahip olsa, bu desteklemez.

Örneğin, Windows Komut İstemi'nde bu bir sözdizimi hatasına neden olur.

echo <hello world>

oysa bu, dizeyi çıkaracaktır: <hello world>

echo ^<hello world^>

Windows PowerShell'i

In Windows'un , ters eğik çizgi yolunu ayırıcı olarak kullanılır; bu nedenle, genellikle bir kaçış karakteri olarak kullanılamaz. PowerShell kullanan ters tırnak yerine ( ').

Örneğin, aşağıdaki komut:

echo "`tFirst line`nNew line"

Çıktı alacak:

        First line
New line

Diğerleri

Ayrıca bakınız

Referanslar

  1. ^ "JavaScript karakter kaçış dizileri · Mathias Bynens" . Mathiasbynens.be . 2014-06-30 alındı .
  2. ^ "Özel Karakterler (JavaScript)" . Msdn.microsoft.com. 2014-06-20 . 2014-06-30 alındı .
  3. ^ Bemer, Bob. "Bob Bemer ESCAPE Sırasını ve Anahtarını Nasıl İcat Etti" . www.bobbemer.com . 22 Mart 2018'de alındı .
  4. ^ Tim Tepesi (1998). "Windows NT Komut Kabuğu" . MacMillan Teknik Yayıncılık . 2010-01-13 alındı .
  5. ^ "about_Escape_Characters" . Msdn.microsoft.com. 2014-05-08. Arşivlenmiş orijinal 2016-11-25 tarihinde . 2016-11-24 alındı .

Dış bağlantılar

Kamu malı Bu makale , Genel Hizmetler İdaresi belgesindeki kamu malı materyali içermektedir  : "Federal Standart 1037C" .