JavaScript'te UTF-8 Nasıl Kodlanır/Kodu Çözülür

Javascript Te Utf 8 Nasil Kodlanir Kodu Cozulur



UTF-8 '' anlamına gelir Unicode Dönüşüm Formatı 8-Bit ”ve karakterlerin, kullanılan dil/koddan bağımsız olarak tüm cihazlarda uygun şekilde görüntülenmesini sağlayan harika bir kodlama formatına karşılık gelir. Ayrıca bu format web sayfaları için yardımcıdır ve metin verilerinin internette depolanması, işlenmesi ve iletilmesi için kullanılır.

Bu eğitim aşağıda belirtilen içerik alanlarını kapsamaktadır:







UTF-8 Kodlaması Nedir?

UTF-8 Kodlaması Unicode karakter dizisini 8 bitlik baytlardan oluşan kodlanmış bir diziye dönüştürme işlemidir. Bu kodlama, diğer karakter kodlamalarına kıyasla geniş bir karakter aralığını temsil edebilir.



UTF-8 Kodlaması Nasıl Çalışır?

UTF-8'de karakterleri temsil ederken her bir kod noktası bir veya daha fazla bayt ile temsil edilir. ASCII aralığındaki kod noktalarının dökümü aşağıdadır:



  • Tek bir bayt, ASCII aralığındaki (0-127) kod noktalarını temsil eder.
  • İki bayt, ASCII aralığındaki (128-2047) kod noktalarını temsil eder.
  • Üç bayt, ASCII aralığındaki (2048-65535) kod noktalarını temsil eder.
  • Dört bayt, ASCII aralığındaki (65536-1114111) kod noktalarını temsil eder.

Öyle ki, bir “'in ilk baytı UTF-8 ” dizisi “ olarak anılır lider bayt dizideki bayt sayısı ve karakterin kod noktası değeri hakkında bilgi veren.
Tek, iki, üç ve dört baytlık bir dizi için 'lider bayt' sırasıyla (0-127), (194-233), (224-239) ve (240-247) aralığındadır.





Baytların geri kalanına sırayla “ denir. sondaki Bayt. İki, üç ve dört baytlık bir dizinin baytlarının tümü (128-191) aralığındadır. Öyle ki, baştaki ve sondaki baytlar analiz edilerek karakterin kod noktası değeri hesaplanabiliyor.

Kod Noktası Değerleri Nasıl Hesaplanıyor?

Farklı bayt dizileri için kod noktası değerleri aşağıdaki şekilde hesaplanır:



  • İki baytlık Sıra: Kod noktası “((lb – 194) * 64) + (tb – 128)” ile eşdeğerdir.
  • Üç baytlık Sıra : Kod noktası “((lb – 224) * 4096) + ((tb1 – 128) * 64) + (tb2 – 128)” ile eşdeğerdir.
  • Dört baytlık Sıra : Kod noktası “((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)” ile eşdeğerdir.

JavaScript'te UTF-8 Nasıl Kodlanır/Kodu Çözülür?

UTF-8'in JavaScript'te kodlanması ve kod çözülmesi, aşağıda belirtilen yaklaşımlarla gerçekleştirilebilir:

  • enodeURIComponent() ' Ve ' decodeURIComponent() ” Yöntemler.
  • kodlamaURI() ' Ve ' kod çözmeURI() ” Yöntemler.
  • Düzenli ifadeler.

Yaklaşım 1: “encodeURIComponent()” ve “decodeURIComponent()” Yöntemlerini Kullanarak JavaScript'te UTF-8'i Kodlama/Kod Çözme

encodeURIComponent() ” yöntemi bir URI bileşenini kodlar. Ayrıca @, &, :, +, $, # vb. gibi özel karakterleri de kodlayabilir. “ decodeURIComponent() Ancak ” yöntemi bir URI bileşeninin kodunu çözer. Bu yöntemler, iletilen değerleri sırasıyla UTF-8'e kodlamak ve kodunu çözmek için kullanılabilir.

Sözdizimi(“encodeURIComponent()” Yöntem)

encodeURIBileşeni ( X )

Verilen sözdiziminde, “ X ” kodlanacak URI'yi belirtir.

Geri dönüş değeri
Bu yöntem, kodlanmış bir URI'yi dize olarak aldı.

Sözdizimi(“decodeURIComponent()” Yöntem)

decodeURIBileşeni ( X )

Burada, ' X ” kodu çözülecek URI'yi ifade eder.

Geri dönüş değeri
Bu yöntem kodu çözülmüş URI'yi verir.

Örnek 1: JavaScript'te UTF-8'i kodlama
Bu örnek, kullanıcı tanımlı bir işlevin yardımıyla iletilen dizeyi kodlanmış bir UTF-8 değerine kodlar:

işlev encode_utf8 ( X ) {
geri dönmek kaçış ( encodeURIBileşeni ( X ) ) ;
}
izin ver = 'Burada' ;
konsol. kayıt ( 'Verilen Değer ->' + val ) ;
Let EncodeVal = encode_utf8 ( val ) ;
konsol. kayıt ( 'Kodlanmış Değer ->' + kodlamaVal ) ;

Bu kod satırlarında aşağıdaki adımları uygulayın:

  • Öncelikle “fonksiyonu tanımlayın” encode_utf8() ” belirtilen parametre tarafından temsil edilen iletilen dizeyi kodlar.
  • Bu kodlama “ encodeURIComponent() Fonksiyon tanımındaki ” yöntemi.
  • Not: kaçış() ” yöntemi herhangi bir kaçış dizisini temsil ettiği karakterle değiştirir.
  • Bundan sonra kodlanacak değeri başlatın ve görüntüleyin.
  • Şimdi, tanımlanan işlevi çağırın ve bu değeri UTF-8 olarak kodlamak için tanımlanan karakter kombinasyonunu argümanları olarak iletin.

Çıktı

Burada bireysel karakterlerin buna göre UTF-8'de temsil edildiği ve kodlandığı ima edilebilir.

Örnek 2: JavaScript'te UTF-8 kodunun çözülmesi
Aşağıdaki kod gösterimi, iletilen değerin (karakter biçiminde) kodlanmış bir UTF-8 temsiline kodunu çözer:

işlev decode_utf8 ( X ) {
geri dönmek decodeURIBileşeni ( kaçmak ( X ) ) ;
}
izin ver = 'à §Ã¨' ;
konsol. kayıt ( 'Verilen Değer ->' + val ) ;
şifreyi çözelim = decode_utf8 ( val ) ;
konsol. kayıt ( 'Kodu Çözülmüş Değer ->' + şifreyi çözmek ) ;

Bu kod bloğunda:

  • Aynı şekilde “fonksiyonunu” tanımlayın. decode_utf8() ' aracılığıyla iletilen karakter kombinasyonunun kodunu çözen ' decodeURIComponent() ' yöntem.
  • Not: kaçmak() ” yöntemi, çeşitli karakterlerin onaltılık kaçış dizileriyle değiştirildiği yeni bir dize alır.
  • Bundan sonra, kodu çözülecek karakter kombinasyonunu belirtin ve kod çözmeyi UTF-8'e uygun şekilde gerçekleştirmek için tanımlanan işleve erişin.

Çıktı

Burada önceki örnekte kodlanan değerin varsayılan değere çözüldüğü ima edilebilir.

Yaklaşım 2: “encodeURI()” ve “decodeURI()” Yöntemlerini Kullanarak JavaScript'te UTF-8'i Kodlama/Kod Çözme

kodlamaURI() ” yöntemi, birden çok karakterin her örneğini, karakterin UTF-8 kodlamasını temsil eden bir dizi kaçış dizisiyle değiştirerek bir URI'yi kodlar. ' ile karşılaştırıldığında encodeURIComponent() ” yönteminde, bu özel yöntem sınırlı karakterleri kodlar.

kod çözmeURI() Ancak ” yöntemi URI'nin (kodlanmış) kodunu çözer. Bu yöntemler, UTF-8 kodlu bir değerdeki karakter kombinasyonunu kodlamak ve kodunu çözmek için kombinasyon halinde uygulanabilir.

Sözdizimi(encodeURI() Yöntem)

kodlamaURI ( X )

Yukarıdaki sözdiziminde, “ X ” URI olarak kodlanacak değere karşılık gelir.

Geri dönüş değeri
Bu yöntem, kodlanmış değeri bir dize biçiminde alır.

Sözdizimi(decodeURI() Yöntem)

kod çözmeURI'si ( X )

Burada, ' X ” kodu çözülecek kodlanmış URI'yi temsil eder.

Geri dönüş değeri
Kodu çözülmüş URI'yi bir dize olarak döndürür.

Örnek 1: JavaScript'te UTF-8'i kodlama
Bu gösterim, iletilen karakter kombinasyonunu kodlanmış bir UTF-8 değerine kodlar:

işlev encode_utf8 ( X ) {
geri dönmek kaçış ( kodlamaURI ( X ) ) ;
}
izin ver = 'Burada' ;
konsol. kayıt ( 'Verilen Değer ->' + val ) ;
Let EncodeVal = encode_utf8 ( val ) ;
konsol. kayıt ( 'Kodlanmış Değer ->' + kodlamaVal ) ;

Burada kodlama için ayrılmış bir işlevi tanımlamaya yönelik yaklaşımları hatırlayın. Şimdi, iletilen karakter birleşimini UTF-8 kodlu bir dize olarak temsil etmek için “encodeURI()” yöntemini uygulayın. Bundan sonra, aynı şekilde, değerlendirilecek karakterleri tanımlayın ve kodlamayı gerçekleştirmek için tanımlanan değeri argüman olarak ileterek tanımlanan işlevi çağırın.

Çıktı

Burada, iletilen karakter kombinasyonunun başarıyla kodlandığı açıktır.

Örnek 2: JavaScript'te UTF-8 kodunun çözülmesi
Aşağıdaki kod gösterimi, kodlanmış UTF-8 değerinin kodunu çözer (önceki örnekte):

işlev decode_utf8 ( X ) {
geri dönmek kod çözmeURI'si ( kaçmak ( X ) ) ;
}
izin ver = 'à §Ã¨' ;
konsol. kayıt ( 'Verilen Değer ->' + val ) ;
şifreyi çözelim = decode_utf8 ( val ) ;
konsol. kayıt ( 'Kodu Çözülmüş Değer ->' + şifreyi çözmek ) ;

Bu koda göre “fonksiyonu” bildirin. decode_utf8() ' kullanılarak kodu çözülecek karakter kombinasyonunu temsil eden belirtilen parametreyi içerir. kod çözmeURI() ' yöntem. Şimdi, kodu çözülecek değeri belirtin ve kod çözmeyi '' öğesine uygulamak için tanımlanan işlevi çağırın. UTF-8 ” temsili.

Çıktı

Bu sonuç önceden kodlanan değere buna göre karar verildiğini göstermektedir.

Yaklaşım 3: Normal İfadeleri Kullanarak JavaScript'te UTF-8'i Kodlama/Kod Çözme

Bu yaklaşım, kodlamayı, çok baytlı unicode dizenin UTF-8 çoklu tek baytlık karakterlere kodlanacağı şekilde uygular. Benzer şekilde kod çözme, kodlanmış dizinin kodunun çok baytlı Unicode karakterlere geri döndürüleceği şekilde gerçekleştirilir.

Örnek 1: JavaScript'te UTF-8'i kodlama
Aşağıdaki kod, çok baytlı unicode dizeyi UTF-8 tek baytlık karakterlere kodlar:

işlev UTF8'i kodlamak ( val ) {
eğer ( bir çeşit val != 'sicim' ) fırlatmak yeni TipHatası ( 'Parametre' val 'bir dize değil' ) ;
yapı string_utf8 = val. yer değiştirmek (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 bayt 110yyyyy, 10zzzzzz
işlev ( X ) {
öyleydi dışarı = X. charCodeAt ( 0 ) ;
geri dönmek Sicim . fromCharCode ( 0xc0 | dışarı >> 6 , 0x80 | dışarı & 0x3f ) ; }
) . yer değiştirmek (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 bayt 1110xxxx, 10yyyyyy, 10zzzzzz
işlev ( X ) {
öyleydi dışarı = X. charCodeAt ( 0 ) ;
geri dönmek Sicim . fromCharCode ( 0xe0 | dışarı >> 12 , 0x80 | dışarı >> 6 & 0x3F , 0x80 | dışarı & 0x3f ) ; }
) ;
konsol. kayıt ( 'Normal İfade Kullanarak Kodlanmış Değer -> ' + string_utf8 ) ;
}
UTF8'i kodlamak ( 'Burada' )

Bu kod parçacığında:

  • Fonksiyonu tanımlayın ' UTF8'i kodlama() ” olarak kodlanacak değeri temsil eden parametreyi içermektedir. UTF-8 ”.
  • Tanımında, ' dizesini kullanarak iletilen değere bir kontrol uygulayın. bir çeşit ” operatörünü kullanın ve belirtilen özel istisnayı “ aracılığıyla döndürün fırlatmak ” anahtar kelimesi.
  • Bundan sonra “ charCodeAt() ' Ve ' fromCharCode() ” sırasıyla dizedeki ilk karakterin Unicode'unu alma ve verilen Unicode değerini karakterlere dönüştürme yöntemlerini kullanır.
  • Son olarak, bu değeri '' olarak kodlamak için verilen karakter dizisini ileterek tanımlanan işlevi çağırın. UTF-8 ” temsili.

Çıktı

Bu çıktı kodlamanın uygun şekilde yapıldığını gösterir.

Örnek 2: JavaScript'te UTF-8 kodunun çözülmesi
Bu gösterimde karakter dizisinin kodu ' UTF-8 ” gösterimi:

işlev UTF8 kodunu çöz ( val ) {
eğer ( bir çeşit val != 'sicim' ) fırlatmak yeni TipHatası ( 'Parametre' val 'bir dize değil' ) ;
yapı cadde = val. yer değiştirmek (
/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g ,
işlev ( X ) {
öyleydi dışarı = ( ( X. charCodeAt ( 0 ) & 0x0f ) << 12 ) | ( ( X. charCodeAt ( 1 ) & 0x3f ) << 6 ) | ( X. charCodeAt ( 2 ) & 0x3f ) ;
geri dönmek Sicim . fromCharCode ( dışarı ) ; }
) . yer değiştirmek (
/[\u00c0-\u00df][\u0080-\u00bf]/g ,
işlev ( X ) {
öyleydi dışarı = ( X. charCodeAt ( 0 ) & 0x1f ) < '+str);
}
decodeUTF8('çè')

Bu kodda:

  • Benzer şekilde “ fonksiyonunu tanımlayın. UTF8'in kodunu çöz() ” kodu çözülecek iletilen değeri ifade eden parametreye sahip.
  • İşlev tanımında, iletilen değerin dize durumunu “ aracılığıyla kontrol edin. bir çeşit ' Şebeke.
  • Şimdi “uygula” charCodeAt() Sırasıyla birinci, ikinci ve üçüncü dize karakterlerinin Unicode'unu alma yöntemini kullanın.
  • Ayrıca “ String.fromCharCode() Unicode değerlerini karakterlere dönüştürme yöntemi.
  • Benzer şekilde, birinci ve ikinci dize karakterlerinin Unicode'unu almak ve bu unicode değerleri karakterlere dönüştürmek için bu prosedürü bir kez daha tekrarlayın.
  • Son olarak, UTF-8 kodu çözülmüş değeri döndürmek için tanımlanan işleve erişin.

Çıktı

Burada kod çözmenin doğru yapıldığı doğrulanabilir.

Çözüm

UTF-8 gösteriminde kodlama/kod çözme ' enodeURIComponent()” Ve ' decodeURIComponent() yöntemler, “ kodlamaURI() ' Ve ' kod çözmeURI() ” yöntemlerini kullanarak veya Normal İfadeleri kullanarak.