Liczba znaków ze spacjami i bez: co liczy formularz
Formularz, portal z CV, wiadomość SMS czy wpis w mediach społecznościowych liczy znaki na jeden z dwóch sposobów: ze spacjami albo bez nich. Najpierw przeczytaj etykietę pola lub tekst pomocy, bo często podają, który sposób obowiązuje. Jeśli nie podają żadnego, użyj surowszego liczenia, zwykle tego bez spacji. Emoji i niektóre litery z akcentami mogą też być liczone jako więcej niż jeden znak w systemach mierzących tekst w jednostkach kodu lub w bajtach, więc tekst może przejść w jednym liczniku, a w innym nie. Licz narzędziem, które stosuje tę samą zasadę co formularz.
Licznik słówCzy mój tekst przekracza limit?Zrób to za darmoZe spacjami czy bez nich
- Ze spacjami liczy każdy wpisany znak, także każdą spację, jako jeden znak.
- Bez spacji usuwa wszystkie białe znaki przed liczeniem, więc wyrazy zlewają się ze sobą. Wynik bez spacji w licznику słów i znaków usuwa każdy znak białej przestrzeni, w tym znaki nowej linii, tabulatory i twarde spacje, a potem liczy to, co zostało.
„Hello world” ma 11 znaków ze spacją i 10 bez niej. Pole, które prosi o znaki bez spacji, chce drugiej liczby.
Dlaczego jedno emoji może liczyć się jako dwa
Tekst ma dwa rodzaje długości. Pierwsza to ta, którą widzą ludzie: grafem, czyli jeden widoczny znak, nawet gdy składa się z kilku punktów kodowych. Druga to to, co zapisuje komputer. Długość łańcucha w JavaScript i wielu starszych systemach liczy jednostki kodu UTF-16. Większość liter zajmuje jedną jednostkę, ale znaki spoza Basic Multilingual Plane, w tym wiele emoji, zajmują dwie. Emoji kciuka w górę, U+1F44D, wygląda jak jeden znak, a ma dwie jednostki UTF-16, więc licznik oparty na jednostkach kodu pokaże 2.
Licznik słów i znaków tutaj liczy widoczne znaki, więc kciuk w górę to 1. Emoji rodziny też to 1, mimo że składa się z kilku punktów kodowych połączonych łącznikami zerowej szerokości (ZWJ). Formularz liczący jednostki kodu pokaże więcej, a różnica rośnie z każdym emoji w tekście.
Litery z akcentami
Literę é można zapisać na dwa sposoby. Jako jeden punkt kodowy, U+00E9, to wszędzie jedna jednostka. Jako literę e i po niej łączący akcent ostry, U+0301, to dwa punkty kodowe i dwie jednostki. Oba warianty wyglądają na ekranie identycznie. Licznik, który liczy punkty kodowe lub jednostki, poda 2 dla drugiej postaci, a licznik słów i znaków poda 1 dla obu.
Limity bajtów dodają kolejną różnicę. W UTF-8 é zajmuje dwa bajty, a większość emoji cztery. Pole z limitem bajtów może pomieścić mniej liter z akcentami lub emoji, niż sugeruje liczba znaków. Licznik słów i znaków nie pokazuje bajtów, więc oszacuj je osobno.
Znaki nowej linii i ukryte znaki
Znak nowej linii w polu tekstowym to jeden znak. Wiele systemów zapisuje jednak nowy wiersz w systemie Windows jako dwa znaki: powrót karetki (CR) i nowy wiersz (LF). Znaki nowej linii wysyłane przez formularze internetowe mają taką właśnie postać. Liczenie na serwerze może więc dać wyższy wynik, niż pokazuje pole, o jeden za każdy znak nowej linii. Licz tekst tak, jak zostanie wysłany, a nie tylko tak, jak go wpisałeś.
Spacje zerowej szerokości zachowują się inaczej. Liczenie bez spacji nie traktuje ich jako białych znaków, więc zostają w wyniku i go zawyżają. Najpierw użyj Usuwania ukrytych znaków. To narzędzie zachowuje tabulatory i znaki nowej linii, a twarde spacje zamienia na zwykłe, które liczenie bez spacji potem usuwa. Przewodnik po ukrytych znakach wyjaśnia, skąd się biorą.
Jeden tekst, pięć wyników
Weź słowo „Café”, spację i emoji kciuka w górę, U+1F44D, z é zapisanym jako jeden punkt kodowy. Różne miary dają różne sumy:
| Miara | Liczba |
|---|---|
| Widoczne znaki, ze spacjami (licznik słów i znaków) | 6 |
| Punkty kodowe | 6 |
| Jednostki kodu UTF-16 (length w JavaScript) | 7 |
| Bajty UTF-8 | 10 |
| Widoczne znaki, bez spacji (licznik słów i znaków) | 5 |
Każda suma jest poprawna w swojej mierze. To formularz decyduje, która miara się liczy, dlatego zasada jest ważniejsza niż pojedyncza liczba.
Kroki
- Przeczytaj zasadę: czy liczą się znaki, bajty czy słowa oraz czy spacje wchodzą do wyniku.
- Oczyść tekst narzędziem Usuwanie ukrytych znaków, aby niewidoczne znaki nie zawyżały wyniku.
- Wklej tekst do licznika słów i znaków i odczytaj liczbę znaków oraz znaków bez spacji. Wiersze z limitami pokazują typowe limity, ale liczy się wartość, którą liczy formularz.
- Jeśli formularz liczy bajty, oszacuj je osobno, jak wyżej.
- Jeśli formularz pokazuje własny licznik na żywo, zaufaj jego wynikowi, a nie swojemu, i użyj tego narzędzia, by sprawdzić, skąd bierze się różnica.
- Jeśli zasada wciąż jest niejasna, zostaw margines. Limity liczby słów omawiają to samo pytanie dla słów i zasad platform.
Przypadki szczególne
- Zasada platformy ma pierwszeństwo. Jeśli platforma ma własny licznik, dopasuj się do jej wyniku, a nie do ogólnego.
- Spacje na końcu. Formularz może obcinać spacje na początku i na końcu pola, ale nie musi. Jedna spacja na końcu może zmienić wynik o jeden.
- Skopiowany tekst. Tekst skopiowany ze strony internetowej może zawierać twarde spacje i niewidoczne znaki. Oczyść go Usuwaniem ukrytych znaków przed liczeniem.
Przetłumaczone z Wersja angielska przy wsparciu AI.
Komentarze
Brak komentarzy. Bądź pierwszy.


