Cara Mengkodekan/Mendekode UTF-8 dalam JavaScript

Cara Mengkodekan Mendekode Utf 8 Dalam Javascript



UTF-8 adalah singkatan dari “ Format Transformasi Unicode 8-Bit ” dan sesuai dengan format pengkodean hebat yang memastikan bahwa karakter ditampilkan dengan tepat di semua perangkat terlepas dari bahasa/skrip yang digunakan. Selain itu, format ini berguna untuk halaman web dan digunakan untuk penyimpanan, pemrosesan, dan transmisi data teks di internet.

Tutorial ini mencakup area konten yang disebutkan di bawah ini:







Apa itu Pengkodean UTF-8?

Pengkodean UTF-8 ” adalah prosedur mengubah urutan karakter Unicode menjadi string yang disandikan yang terdiri dari byte 8-bit. Pengkodean ini dapat mewakili sejumlah besar karakter dibandingkan dengan pengkodean karakter lainnya.



Bagaimana Cara Kerja Pengkodean UTF-8?

Saat mewakili karakter dalam UTF-8, setiap titik kode diwakili oleh satu atau lebih byte. Berikut adalah rincian poin kode dalam rentang ASCII:



  • Satu byte mewakili titik kode dalam rentang ASCII (0-127).
  • Dua byte mewakili titik kode dalam rentang ASCII (128-2047).
  • Tiga byte mewakili titik kode dalam rentang ASCII (2048-65535).
  • Empat byte mewakili titik kode dalam rentang ASCII (65536-1114111).

Sedemikian rupa sehingga byte pertama dari “ UTF-8 Urutan ” disebut sebagai “ byte pemimpin ” yang memberikan informasi tentang jumlah byte dalam urutan dan nilai titik kode karakter.
'Pemimpin byte' untuk urutan byte tunggal, dua, tiga, dan empat berada dalam kisaran (0-127), (194-233), (224-239), dan (240-247), masing-masing.





Sisa byte yang berurutan disebut “ tertinggal ” byte. Byte untuk urutan dua, tiga, dan empat byte semuanya berada dalam kisaran (128-191). Sedemikian rupa sehingga nilai titik kode karakter dapat dihitung dengan menganalisis byte awal dan akhir.

Bagaimana Nilai Poin Kode Dihitung?

Nilai titik kode untuk urutan byte yang berbeda dihitung sebagai berikut:



  • Urutan Dua byte: Titik kodenya setara dengan “((lb – 194) * 64) + (tb – 128)”.
  • Urutan Tiga byte : Titik kodenya setara dengan “((lb – 224) * 4096) + ((tb1 – 128) * 64) + (tb2 – 128)”.
  • Urutan Empat byte : Titik kodenya setara dengan “((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)”.

Bagaimana cara mengkodekan/mendekode UTF-8 dalam JavaScript?

Pengkodean dan penguraian kode UTF-8 dalam JavaScript dapat dilakukan melalui pendekatan yang disebutkan di bawah ini:

  • enodeURIKomponen() ' Dan ' decodeURIComponent() ” Metode.
  • menyandikanURI() ' Dan ' memecahkan kodeURI() ” Metode.
  • Ekspresi Reguler.

Pendekatan 1: Encode/Decode UTF-8 dalam JavaScript Menggunakan Metode “encodeURIComponent()” dan “decodeURIComponent()”

menyandikanKomponenURI() ” Metode mengkodekan komponen URI. Selain itu, dapat menyandikan karakter khusus seperti @, &, :, +, $, #, dll. decodeURIComponent() ”, namun metode ini menerjemahkan komponen URI. Metode ini dapat digunakan untuk menyandikan dan mendekode nilai yang diteruskan ke UTF-8.

Sintaks(Metode “encodeURIComponent()”)

mengkodekan Komponen URI ( X )

Dalam sintaks yang diberikan, “ X ” menunjukkan URI yang akan dikodekan.

Nilai Pengembalian
Metode ini mengambil URI yang disandikan sebagai string.

Sintaksis(Metode “decodeURIComponent()”)

decodeURIComponent ( X )

Di Sini, ' X ” mengacu pada URI yang akan didekodekan.

Nilai Pengembalian
Metode ini memberikan URI yang didekodekan.

Contoh 1: Pengkodean UTF-8 dalam JavaScript
Contoh ini mengkodekan string yang diteruskan ke nilai UTF-8 yang dikodekan dengan bantuan fungsi yang ditentukan pengguna:

fungsi encode_utf8 ( X ) {
kembali tidak bisa melarikan diri ( mengkodekan Komponen URI ( X ) ) ;
}
biarkan Val = 'Di Sini' ;
menghibur. catatan ( 'Nilai yang Diberikan ->' + val ) ;
biarkan encodeVal = encode_utf8 ( val ) ;
menghibur. catatan ( 'Nilai yang Dikodekan ->' + encodeVal ) ;

Di baris kode ini, lakukan langkah-langkah yang diberikan di bawah ini:

  • Pertama, tentukan fungsi “ encode_utf8() ” yang mengkodekan string yang diteruskan yang diwakili oleh parameter yang ditentukan.
  • Pengkodean ini dilakukan oleh “ menyandikanKomponenURI() ” metode dalam definisi fungsi.
  • Catatan: tidak bisa melarikan diri() Metode ” menggantikan urutan escape apa pun dengan karakter yang diwakilinya.
  • Setelah itu, inisialisasi nilai yang akan dikodekan dan tampilkan.
  • Sekarang, aktifkan fungsi yang ditentukan dan teruskan kombinasi karakter yang ditentukan sebagai argumennya untuk menyandikan nilai ini ke UTF-8.

Keluaran

Di sini, dapat tersirat bahwa masing-masing karakter direpresentasikan dan dikodekan dalam UTF-8 sesuai dengan itu.

Contoh 2: Mendekode UTF-8 dalam JavaScript
Demonstrasi kode di bawah ini menerjemahkan nilai yang diteruskan (dalam bentuk karakter) ke representasi UTF-8 yang dikodekan:

fungsi decode_utf8 ( X ) {
kembali decodeURIComponent ( melarikan diri ( X ) ) ;
}
biarkan Val = 'çè' ;
menghibur. catatan ( 'Nilai yang Diberikan ->' + val ) ;
biarkan memecahkan kode = decode_utf8 ( val ) ;
menghibur. catatan ( 'Nilai yang Didekodekan ->' + membaca sandi ) ;

Di blok kode ini:

  • Demikian pula, tentukan fungsi “ decode_utf8() ” yang menerjemahkan kombinasi karakter yang diteruskan melalui “ decodeURIComponent() ' metode.
  • Catatan: melarikan diri() Metode ” mengambil string baru di mana berbagai karakter digantikan oleh urutan escape heksadesimal.
  • Setelah itu, tentukan kombinasi karakter yang akan didekodekan dan akses fungsi yang ditentukan untuk melakukan decoding ke UTF-8 dengan tepat.

Keluaran

Di sini, dapat diartikan bahwa nilai yang dikodekan pada contoh sebelumnya didekodekan ke nilai default.

Pendekatan 2: Encode/Decode UTF-8 dalam JavaScript Menggunakan Metode “encodeURI()” dan “decodeURI()”

menyandikanURI() Metode ” mengkodekan URI dengan mengganti setiap contoh beberapa karakter dengan sejumlah rangkaian escape yang mewakili pengkodean UTF-8 karakter. Dibandingkan dengan “ menyandikanKomponenURI() ”, metode khusus ini mengkodekan karakter terbatas.

memecahkan kodeURI() ”, namun metode ini menerjemahkan URI (dikodekan). Metode ini dapat diterapkan secara kombinasi untuk menyandikan dan mendekode kombinasi karakter dalam nilai yang dikodekan UTF-8.

Sintaks (Metode encodeURI())

menyandikanURI ( X )

Dalam sintaks di atas, “ X ” sesuai dengan nilai yang akan dikodekan sebagai URI.

Nilai Pengembalian
Metode ini mengambil nilai yang dikodekan dalam bentuk string.

Sintaks (Metode decodeURI())

memecahkan kodeURI ( X )

Di Sini, ' X ” mewakili URI yang disandikan untuk didekodekan.

Nilai Pengembalian
Ini mengembalikan URI yang didekodekan sebagai string.

Contoh 1: Pengkodean UTF-8 dalam JavaScript
Demonstrasi ini mengkodekan kombinasi karakter yang diteruskan ke nilai UTF-8 yang dikodekan:

fungsi encode_utf8 ( X ) {
kembali tidak bisa melarikan diri ( menyandikanURI ( X ) ) ;
}
biarkan Val = 'Di Sini' ;
menghibur. catatan ( 'Nilai yang Diberikan ->' + val ) ;
biarkan encodeVal = encode_utf8 ( val ) ;
menghibur. catatan ( 'Nilai yang Dikodekan ->' + encodeVal ) ;

Di sini, ingat kembali pendekatan untuk mendefinisikan fungsi yang dialokasikan untuk pengkodean. Sekarang, terapkan metode “encodeURI()” untuk mewakili kombinasi karakter yang diteruskan sebagai string yang dikodekan UTF-8. Setelah itu, tentukan juga karakter yang akan dievaluasi dan aktifkan fungsi yang ditentukan dengan meneruskan nilai yang ditentukan sebagai argumennya untuk melakukan pengkodean.

Keluaran

Di sini, jelas bahwa kombinasi karakter yang diteruskan berhasil dikodekan.

Contoh 2: Mendekode UTF-8 dalam JavaScript
Demonstrasi kode di bawah ini menerjemahkan nilai UTF-8 yang dikodekan (dalam contoh sebelumnya):

fungsi decode_utf8 ( X ) {
kembali memecahkan kodeURI ( melarikan diri ( X ) ) ;
}
biarkan Val = 'çè' ;
menghibur. catatan ( 'Nilai yang Diberikan ->' + val ) ;
biarkan memecahkan kode = decode_utf8 ( val ) ;
menghibur. catatan ( 'Nilai yang Didekodekan ->' + membaca sandi ) ;

Menurut kode ini, deklarasikan fungsi “ decode_utf8() ” yang terdiri dari parameter yang dinyatakan yang mewakili kombinasi karakter yang akan didekodekan menggunakan “ memecahkan kodeURI() ' metode. Sekarang, tentukan nilai yang akan didekodekan dan aktifkan fungsi yang ditentukan untuk menerapkan decoding ke “ UTF-8 ” representasi.

Keluaran

Hasil ini menyiratkan bahwa nilai yang dikodekan sebelumnya ditentukan sesuai.

Pendekatan 3: Encode/Decode UTF-8 dalam JavaScript Menggunakan Ekspresi Reguler

Pendekatan ini menerapkan pengkodean sedemikian rupa sehingga string unicode multi-byte dikodekan ke beberapa karakter byte tunggal UTF-8. Demikian pula, penguraian kode dilakukan sedemikian rupa sehingga string yang dikodekan didekodekan kembali menjadi karakter Unicode multi-byte.

Contoh 1: Pengkodean UTF-8 dalam JavaScript
Kode di bawah ini mengkodekan string unicode multi-byte ke karakter byte tunggal UTF-8:

fungsi menyandikanUTF8 ( val ) {
jika ( jenis val != 'rangkaian' ) melemparkan baru Kesalahan Ketik ( 'Parameter' val 'bukan string' ) ;
konstanta string_utf8 = val. mengganti (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 byte 110yyyyy, 10zzzzzz
fungsi ( X ) {
dulu keluar = X. charCodeAt ( 0 ) ;
kembali Rangkaian . dariCharCode ( 0xc0 | keluar >> 6 , 0x80 | keluar & 0x3f ) ; }
) . mengganti (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 byte 1110xxxx, 10yyyyyy, 10zzzzzz
fungsi ( X ) {
dulu keluar = X. charCodeAt ( 0 ) ;
kembali Rangkaian . dariCharCode ( 0xe0 | keluar >> 12 , 0x80 | keluar >> 6 & 0x3F , 0x80 | keluar & 0x3f ) ; }
) ;
menghibur. catatan ( 'Nilai yang Disandikan Menggunakan Ekspresi Reguler -> ' + string_utf8 ) ;
}
menyandikanUTF8 ( 'Di Sini' )

Dalam cuplikan kode ini:

  • Definisikan fungsi “ menyandikanUTF8() ” terdiri dari parameter yang mewakili nilai yang akan dikodekan sebagai “ UTF-8 ”.
  • Dalam definisinya, terapkan pemeriksaan pada nilai yang diteruskan yang bukan string menggunakan “ jenis ” operator dan kembalikan pengecualian khusus yang ditentukan melalui “ melemparkan ” kata kunci.
  • Setelah itu, terapkan “ charCodeAt() ' Dan ' dariCharCode() ” metode untuk mengambil Unicode dari karakter pertama dalam string dan mengubah nilai Unicode yang diberikan menjadi karakter masing-masing.
  • Terakhir, aktifkan fungsi yang ditentukan dengan meneruskan urutan karakter tertentu untuk menyandikan nilai ini sebagai “ UTF-8 ” representasi.

Keluaran

Keluaran ini menandakan bahwa pengkodean dilakukan dengan tepat.

Contoh 2: Mendekode UTF-8 dalam JavaScript
Dalam demonstrasi ini, urutan karakter diterjemahkan menjadi “ UTF-8 ” representasi:

fungsi memecahkan kodeUTF8 ( val ) {
jika ( jenis val != 'rangkaian' ) melemparkan baru Kesalahan Ketik ( 'Parameter' val 'bukan string' ) ;
konstanta str = val. mengganti (
/[\u00e0-\u00ef][\u0080-\f][\u0080-\u00f]/g ,
fungsi ( X ) {
dulu keluar = ( ( X. charCodeAt ( 0 ) & 0x0f ) << 12 ) | ( ( X. charCodeAt ( 1 ) & 0x3f ) << 6 ) | ( X. charCodeAt ( 2 ) & 0x3f ) ;
kembali Rangkaian . dariCharCode ( keluar ) ; }
) . mengganti (
/[\u00c0-\u00df][\u0080-\u000bf]/g ,
fungsi ( X ) {
dulu keluar = ( X. charCodeAt ( 0 ) & 0x1f ) < '+str);
}
decodeUTF8('çè')

Dalam kode ini:

  • Demikian pula, definisikan fungsi “ memecahkan kodeUTF8() ” memiliki parameter yang mengacu pada nilai yang diteruskan untuk didekodekan.
  • Dalam definisi fungsi, periksa kondisi string dari nilai yang diteruskan melalui “ jenis ” operator.
  • Sekarang, terapkan “ charCodeAt() ” metode untuk mengambil Unicode masing-masing karakter string pertama, kedua, dan ketiga.
  • Juga, terapkan “ String.dariCharCode() ” metode untuk mengubah nilai Unicode menjadi karakter.
  • Demikian pula, ulangi prosedur ini lagi untuk mengambil Unicode dari karakter string pertama dan kedua dan mengubah nilai unicode ini menjadi karakter.
  • Terakhir, akses fungsi yang ditentukan untuk mengembalikan nilai dekode UTF-8.

Keluaran

Di sini, dapat diverifikasi bahwa penguraian kode dilakukan dengan benar.

Kesimpulan

Pengkodean/dekode dalam representasi UTF-8 dapat dilakukan melalui “ enodeURIComponent()” Dan ' decodeURIComponent() metode, “ menyandikanURI() ' Dan ' memecahkan kodeURI() ”, atau menggunakan Regular Expressions.