Telefon może wyświetlić długi tekst jako jedną wiadomość, nawet jeśli sieć przesyła kilka części. Alfabet użyty do zakodowania tekstu określa, za ile części Bird pobiera opłatę.
Czym jest segment?
Segment to największy fragment tekstu, jaki może przenieść jedna wiadomość sieciowa. Zwykły tekst łaciński mieści 160 znaków w segmencie. Jeśli wiadomość zawiera choćby jeden znak spoza tego zestawu, na przykład emoji, cudzysłów typograficzny lub większość liter z akcentami, każdy segment mieści tylko 70 znaków.
Gdy wiadomość wymaga więcej niż jednego segmentu, każda część oddaje trochę miejsca na nagłówek, którego telefon używa do ich złożenia: 153 znaki na część dla zwykłego tekstu, 67 dla szerszego zestawu. Zatem 161 zwykłych liter kosztuje dwa segmenty: 153 w pierwszym i osiem w drugim.
Bird liczy zwykły tekst w alfabecie GSM-7, a wszystko inne jako UCS-2, czyli dwa kodowania akceptowane przez operatorów. Kilka znaków liczy się podwójnie nawet w GSM-7, a niektóre emoji liczą się podwójnie w UCS-2; strona o kodowaniu wymienia je.
Dlaczego jedna wiadomość kosztowała trzy?
Bird nalicza opłaty za liczbę segmentów, więc wiadomość trzysegmentowa generuje trzy jednostki według obowiązującej stawki.
Bird oblicza liczbę segmentów w momencie przyjęcia wysyłki. Miejsce docelowe, kategoria wiadomości i typ nadawcy również wpływają na obowiązującą cenę. Sprawdź cennik SMS dla trasy, której używasz.
Na przykład 150 zwykłych liter łacińskich mieści się w jednym segmencie. Dodaj emoji uśmiechniętej twarzy, a cała treść przechodzi na UCS-2. To emoji liczy się podwójnie, co daje łącznie 152. Dzielenie 152 przez wieloczęściową pojemność 67 wymaga trzech segmentów.
Które znaki zmieniają kodowanie?
Dowolny znak spoza GSM-7 przenosi całą treść do UCS-2.
Cudzysłowy proste mieszczą się w GSM-7. Cudzysłowy typograficzne nie. Litery é i ü mieszczą się. Litery á, í i ú nie. Tekst chiński, japoński, koreański, arabski, tajski i hindi również wymaga szerszego kodowania.
Nazwa lub tytuł produktu wstawiony do szablonu może więc zmienić kodowanie całej wiadomości. Sprawdź kompletny tekst po wstawieniu tych wartości.
Dlaczego zliczenie znaków daje inny wynik?
Niektóre znaki liczą się podwójnie w ramach limitu segmentu.
GSM-7 liczy każdy z €, [, ], {, }, \, ~, ^ i | jako dwa znaki. Znak form feed, który powoduje podział strony, również liczy się podwójnie. Osiemdziesiąt znaków euro wypełnia więc jeden segment.
Treść złożona ze 159 zwykłych liter łacińskich, po których następuje €, ma 160 znaków. W ramach limitu liczy się jako 161. Wymaga dwóch segmentów.
Niektóre emoji, takie jak 😀, liczą się podwójnie w UCS-2. Trzydzieści pięć takich emoji wypełnia jeden segment. Strona o kodowaniu wymienia znaki wymagające szczególnej uwagi.
Jak sprawdzić liczbę segmentów w Bird?
Odczytaj obliczoną liczbę z obiektu segments w odpowiedzi na wiadomość.
countto liczba całkowita o wartości co najmniej 1. Każdy zliczony segment to jednostka rozliczeniowa. Wiadomości wychodzące są ograniczone do 12. Dłuższa treść otrzymuje HTTP422, co odrzuca żądanie bez obcinania tekstu.encodingprzyjmuje wartośćGSM_7BITlubUCS2i wskazuje, która pojemność obowiązuje.charactersliczy znaki w tekście przed zastosowaniem reguł podwójnego liczenia. Użyjcount, aby sprawdzić rozliczane segmenty.
Jeśli wiadomość musi zmieścić się w jednym segmencie, sprawdź count po przygotowaniu kompletnej treści. Uwzględnij wstawione nazwy i licz podwójnie znaki takie jak 😀.
Możesz też ustawić options.smart_encoding na true lub false. Domyślna wartość to false. Po włączeniu zastępuje obsługiwane znaki interpunkcyjne tylko wtedy, gdy cały wynik mieści się w GSM-7. Emoji pozostawione w treści zapobiega wszystkim zamianom. Smart encoding wyjaśnia to zachowanie.
Przewodnik po limitach znaków dokumentuje reguły zliczania i pola odpowiedzi.
W skrócie
Każdy segment to jednostka rozliczeniowa.
Wiadomość podzielona na trzy segmenty jest rozliczana jako trzy jednostki według obowiązującej stawki.
Kodowanie określa pojemność.
Jeden znak spoza kompaktowego alfabetu SMS przenosi całą treść do kodowania Unicode.
Niektóre znaki liczą się podwójnie.
Znak euro liczy się jako dwa znaki w ramach limitu. Niektóre emoji również liczą się podwójnie.
Każdy segment wieloczęściowy rezerwuje miejsce na nagłówek.
Podział zmniejsza pojemność w każdej części, łącznie z pierwszą.