Un apostrofo curvo può cambiare il costo di un messaggio che contiene lettere latine altrimenti ordinarie. Il telefono mostra quasi la stessa frase. Bird ha bisogno di più segmenti di rete per inviarla.
Quali sono le due codifiche?
GSM-7 usa un alfabeto compatto, mentre UCS-2 rappresenta i caratteri al di fuori di quell'alfabeto.
Lettere latine ordinarie, cifre, punteggiatura comune e alcune lettere accentate rientrano in GSM-7. La specifica dell'alfabeto SMS definisce quell'insieme.
UCS-2 trasporta i caratteri al di fuori di quell'insieme, inclusi apostrofi curvi ed emoji. Alcuni emoji contano doppio ai fini del limite di caratteri.
Testo in cinese, giapponese, coreano, cirillico, arabo, thailandese e hindi richiede caratteri al di fuori dell'alfabeto GSM-7 di Bird.
Come sceglie la codifica Bird?
Bird verifica l'intero corpo rispetto a GSM-7 e usa UCS-2 se un carattere qualsiasi non supera quel test.
La codifica si applica all'intero corpo. Un apostrofo curvo non riceve una codifica separata rispetto alle parole che lo circondano. La sua presenza cambia la codifica anche di quelle parole.
Puoi controllare il risultato tramite segments.encoding, i cui valori sono GSM_7BIT e UCS2.
Come cambia il conteggio dei segmenti in base alla codifica?
La codifica più ampia lascia meno spazio per il testo in ogni segmento fatturabile.
Bird usa questi limiti:
| Codifica | Segmento singolo | Ogni parte quando suddiviso |
|---|---|---|
| GSM-7 | 160 caratteri | 153 caratteri |
| UCS-2 | 70 caratteri | 67 caratteri |
Questi limiti contano doppio alcuni caratteri, come elencato di seguito. Ogni parte suddivisa riserva spazio per l'intestazione che il telefono usa per ricomporre le parti. SMS concatenati spiega l'intestazione.
Un corpo di 155 lettere latine ordinarie occupa un segmento GSM-7. Aggiungi un apostrofo curvo e il corpo di 156 caratteri passa a UCS-2. Supera 70, quindi si applica il limite multiparte: 156 diviso 67 arrotondato per eccesso dà tre segmenti.
Bird fattura ogni segmento separatamente. Segmenti SMS spiega come il conteggio diventa la quantità fatturabile.
Quali caratteri richiedono attenzione particolare?
Punteggiatura curva, emoji e lettere al di fuori dell'alfabeto GSM-7 possono cambiare la codifica dell'intero messaggio.
- Gli apostrofi dritti rientrano in GSM-7; gli apostrofi curvi no.
- Un trattino semplice rientra; i trattini tipografici brevi e lunghi no.
- Tre punti rientrano; il singolo carattere di puntini di sospensione
…no. éeürientrano;á,íeúno.
GSM-7 conta doppi questi caratteri: ^, {, }, \, [, ], ~, | e €. Anche il form feed, un carattere di controllo che richiede un'interruzione di pagina, conta doppio. Ottanta simboli dell'euro riempiono quindi un segmento.
In UCS-2, un emoji come 😀 conta doppio. Trentacinque riempiono un segmento. Aggiungerne un altro ne supera la capienza.1
La codifica intelligente può evitare il cambio?
La codifica intelligente può sostituire la punteggiatura supportata quando ogni carattere risultante rientra in GSM-7.
La abiliti per ogni invio con options.smart_encoding, un booleano che accetta true o false, con false come valore predefinito. Un apostrofo curvo può diventare un apostrofo dritto. Un carattere di puntini di sospensione può diventare tre punti.
Bird lascia il corpo originale invariato se resta un carattere non supportato. Il testo in arabo o giapponese mantiene quindi i limiti di capienza Unicode. Cambiare l'impostazione non può far rientrare quegli alfabeti in GSM-7.
Smart encoding descrive le regole di sostituzione e il calcolatore di segmenti verifica il testo prima dell'invio.
Footnotes
-
Per calcolatori personalizzati, Bird misura GSM-7 in septets e
UCS2in code units UTF-16. I caratteri di estensione GSM-7 usano due septets. UTF-16 usa due code units per i caratteri al di fuori del primo blocco Unicode, incluso😀. ↩
In breve
Il corpo determina la codifica.
Bird usa GSM-7 quando ogni carattere rientra nel suo alfabeto e UCS-2 quando un carattere qualsiasi ne è escluso.
Alcuni caratteri contano doppio.
Il testo in lettere latine semplici contiene 160 caratteri per segmento. L'alfabeto più ampio ne contiene 70, con alcuni emoji che contano doppio.
La suddivisione riduce la capienza di ogni parte.
I messaggi multiparte riservano spazio per l'intestazione. Il testo in lettere latine semplici contiene quindi 153 caratteri per parte. L'alfabeto più ampio ne contiene 67, con alcuni caratteri che contano doppio.
La codifica intelligente richiede una scelta esplicita.
Bird sostituisce i caratteri supportati solo quando abiliti l'opzione e l'intero risultato rientra in GSM-7.