SMS

Apa itu encoding GSM-7 vs UCS-2?

GSM-7 memuat lebih banyak teks per segmen dengan alfabet terbatas; UCS-2 mendukung lebih banyak karakter tetapi menyisakan lebih sedikit ruang per segmen.

Satu apostrof lengkung bisa mengubah biaya sebuah teks yang sebelumnya hanya berisi huruf Latin biasa. Ponsel menampilkan kalimat yang hampir sama. Bird membutuhkan lebih banyak segmen jaringan untuk mengirimnya.

Apa saja dua encoding tersebut?

GSM-7 menggunakan alfabet ringkas, sedangkan UCS-2 merepresentasikan karakter di luar alfabet tersebut.

Huruf Latin biasa, angka, tanda baca umum, dan beberapa huruf beraksen masuk dalam GSM-7. Spesifikasi alfabet SMS mendefinisikan kumpulan karakter tersebut.

UCS-2 membawa karakter di luar kumpulan tersebut, termasuk tanda kutip lengkung dan emoji. Beberapa emoji dihitung ganda terhadap batas karakternya.

Teks Mandarin, Jepang, Korea, Sirilik, Arab, Thai, dan Hindi memerlukan karakter di luar alfabet GSM-7 Bird.

Bagaimana Bird memilih encoding?

Bird menguji seluruh isi pesan terhadap GSM-7 dan menggunakan UCS-2 jika ada karakter yang tidak lolos pengujian tersebut.

Encoding berlaku untuk seluruh isi pesan. Apostrof lengkung tidak mendapat encoding terpisah dari kata-kata di sekitarnya. Kehadirannya mengubah encoding kata-kata tersebut juga.

Anda dapat memeriksa hasilnya melalui segments.encoding, yang nilainya adalah GSM_7BIT dan UCS2.

Bagaimana encoding mengubah jumlah segmen?

Encoding yang lebih luas menyisakan lebih sedikit ruang untuk teks di setiap segmen yang ditagihkan.

Bird menggunakan batas berikut:

EncodingSegmen tunggalSetiap bagian saat dipisah
GSM-7160 karakter153 karakter
UCS-270 karakter67 karakter

Batas ini menghitung karakter tertentu sebagai ganda, seperti tercantum di bawah. Setiap bagian yang dipisah menyisihkan ruang header agar ponsel dapat menyatukan bagian-bagian tersebut. SMS tersambung menjelaskan header tersebut.

Isi pesan sepanjang 155 huruf Latin biasa menempati satu segmen GSM-7. Tambahkan apostrof lengkung dan isi pesan 156 karakter tersebut beralih ke UCS-2. Jumlahnya melebihi 70, sehingga batas multipart berlaku: 156 dibagi 67 dibulatkan ke atas menjadi tiga segmen.

Bird menagih setiap segmen secara terpisah. Segmen SMS menjelaskan bagaimana jumlah segmen menjadi kuantitas yang ditagihkan.

Karakter mana yang perlu perhatian khusus?

Tanda baca lengkung, emoji, dan huruf di luar alfabet GSM-7 dapat mengubah encoding seluruh pesan.

  • Apostrof lurus masuk dalam GSM-7; apostrof lengkung tidak.
  • Tanda hubung biasa masuk; en dash dan em dash tipografis tidak.
  • Tiga titik masuk; karakter elipsis tunggal tidak.
  • é dan ü masuk; á, í, dan ú tidak.

GSM-7 menghitung karakter berikut sebagai ganda: ^, {, }, \, [, ], ~, |, dan . Form feed, karakter kontrol yang meminta pemisah halaman, juga dihitung ganda. Delapan puluh tanda euro mengisi satu segmen penuh.

Dalam UCS-2, emoji seperti 😀 dihitung ganda. Tiga puluh lima mengisi satu segmen. Menambahkan satu lagi melampaui kapasitasnya.1

Bisakah smart encoding menghindari peralihan?

Smart encoding dapat mengganti tanda baca yang didukung jika semua karakter hasilnya masuk dalam GSM-7.

Anda mengaktifkannya per pengiriman dengan options.smart_encoding, sebuah boolean yang menerima true atau false, dengan false sebagai default. Apostrof lengkung bisa menjadi apostrof lurus. Elipsis bisa menjadi tiga titik.

Bird membiarkan isi pesan asli tidak berubah jika ada karakter yang tidak didukung tersisa. Teks Arab atau Jepang karenanya tetap menggunakan batas kapasitas Unicode. Mengubah pengaturan ini tidak dapat membuat aksara tersebut masuk dalam GSM-7.

Smart encoding menjelaskan aturan penggantian, dan kalkulator segmen memeriksa teks sebelum pengiriman.

Footnotes

  1. Untuk kalkulator kustom, Bird mengukur GSM-7 dalam septet dan UCS2 dalam code unit UTF-16. Karakter ekstensi GSM-7 menggunakan dua septet. UTF-16 menggunakan dua code unit untuk karakter di luar blok pertama Unicode, termasuk 😀.

Singkatnya

  1. Isi pesan menentukan encoding.

    Bird menggunakan GSM-7 jika semua karakter masuk dalam alfabetnya, dan UCS-2 jika ada karakter yang tidak masuk.

  2. Beberapa karakter dihitung ganda.

    Teks Latin biasa memuat 160 karakter per segmen. Alfabet yang lebih luas memuat 70, dengan beberapa emoji dihitung ganda.

  3. Pemisahan mengurangi kapasitas setiap bagian.

    Pesan multipart menyisihkan ruang untuk header. Teks Latin biasa kemudian memuat 153 karakter per bagian. Alfabet yang lebih luas memuat 67, dengan beberapa karakter dihitung ganda.

  4. Smart encoding memerlukan pilihan eksplisit.

    Bird mengganti karakter yang didukung hanya jika Anda mengaktifkan opsi tersebut dan seluruh hasilnya masuk dalam GSM-7.

Bangun di jaringan yang sama.

Kunci API uji coba langsung tersedia untuk Anda. Akses produksi terbuka saat Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Ide Anda berikutnya.
Siap terhubung.