Karakterek szóközökkel vagy nélkül: melyiket számolja egy űrlap
Egy űrlap, szakmai profilt kezelő oldal, SMS vagy közösségi bejegyzés kétféleképpen számolhatja a karaktereket: szóközökkel vagy szóközök nélkül. Először a mező címkéjét vagy súgószövegét olvasd el, mert gyakran ez írja le, melyik a szabály. Ha egyik sem derül ki belőle, használd a szigorúbb számolást, ami általában a szóköz nélküli. Az emojik és egyes ékezetes betűk több karakternek számíthatnak azokban a rendszerekben, amelyek a szöveget kódegységben vagy bájtban mérik, ezért egy szöveg az egyik számlálón átmehet, a másikon viszont elbukhat. Olyan eszközzel számolj, amely ugyanazt a szabályt követi, mint az űrlap.
SzószámlálóTúllépem a korlátot?Próbáld ki ingyenSzóközökkel vagy szóközök nélkül
- Szóközökkel minden begépelt karaktert megszámol, a szóközöket is, mindegyiket egynek.
- Szóközök nélkül számolás előtt eltávolít minden szóközkaraktert, így a szavak összefutnak. A Szószámláló szóköz nélküli értéke minden szóközkaraktert eltávolít, a sortöréseket, tabulátorokat és a nem törhető szóközöket is, majd megszámolja a maradékot.
„Hello world” 11 karakter a szóközzel és 10 nélküle. Az a mező, amely szóköz nélküli karaktereket kér, a második számot várja.
Miért számíthat egy emoji kettőnek
A szövegnek kétféle hossza van. Az első az, amit az emberek látnak: a grafémaklaszter, ami egyetlen látható karakter, még ha több kódpontból is áll. A második az, amit a számítógép tárol. A JavaScript string hossza és sok régebbi rendszer UTF-16 kódegységeket számol. A legtöbb betű egy egységet használ, de a Basic Multilingual Plane (BMP) körön kívüli karakterek, köztük sok emoji, kettőt. A hüvelykujj felfelé emoji, U+1F44D, egy karakternek látszik, mégis két UTF-16 egység, ezért a kódegységeket számoló számláló 2-t ad.
A Szószámláló a látható karaktereket számolja, így a hüvelykujjas emoji 1. A családemoji is 1, pedig több kódpontból áll, amelyeket nulla szélességű illesztők (ZWJ) fűznek össze. A kódegységeket számoló űrlap többet jelez, és az eltérés minden emojival nő.
Ékezetes betűk
Az é kétféleképpen tárolható. Egyetlen kódpontként, U+00E9-ként mindenhol egy egység. Az e betű és az U+0301 kombinált éles ékezet sorozataként két kódpont és két egység. A képernyőn mindkettő azonosnak látszik. A kódpontokat vagy egységeket számoló számláló a második alakra 2-t ad, a Szószámláló viszont mindkettőre 1-et.
A bájtkorlátok újabb különbséget okoznak. UTF-8-ban az é két bájtot foglal, a legtöbb emoji négyet. Egy bájtkorlátos mezőbe kevesebb ékezetes betű vagy emoji fér, mint amennyit a karakterszám sugall. A Szószámláló nem mutat bájtokat, ezért ezeket külön kell megbecsülni.
Sortörések és rejtett karakterek
A sortörés egy karakter a szövegdobozban. Sok rendszer a Windows-os sortörést két karakterként tárolja, kocsivissza és soremelés formájában, a webes űrlapküldések pedig ebben a formában továbbítják a sortöréseket. Egy szerveren futó számlálás ezért magasabb lehet, mint amit a doboz mutat, sortörésenként eggyel. A szöveget úgy számold, ahogy be lesz küldve, nem csak úgy, ahogy begépelted.
A nulla szélességű szóközök másképp viselkednek. A szóköz nélküli szám nem tekinti őket szóközkaraktereknek, ezért benne maradnak az értékben, és felfújják. Először Rejtett karakterek eltávolítása. Ez az eszköz megtartja a tabulátorokat és a sortöréseket, a nem törhető szóközöket pedig sima szóközzé alakítja, amelyeket a szóköz nélküli szám aztán eltávolít. A rejtett karakterekről szóló útmutató elmagyarázza, honnan származnak ezek a karakterek.
Egy szöveg, öt érték
Vedd a „Café” szót, egy szóközt és egy hüvelykujj felfelé emojit, U+1F44D-t, az é egyetlen kódpontként tárolva. A különböző mérőszámok különböző összegeket adnak:
| Mérőszám | Érték |
|---|---|
| Látható karakterek, szóközökkel (Szószámláló) | 6 |
| Kódpontok | 6 |
| UTF-16 kódegységek (JavaScript hossza) | 7 |
| UTF-8 bájtok | 10 |
| Látható karakterek, szóközök nélkül (Szószámláló) | 5 |
Minden összeg a saját mérőszámára helyes. Hogy melyik mérőszám számít, azt az űrlap dönti el, ezért a szabály fontosabb bármelyik egyes számnál.
Lépések
- Olvasd el a szabályt: karakterek, bájtok vagy szavak, és számítanak-e a szóközök.
- Tisztítsd meg a szöveget a Rejtett karakterek eltávolítása eszközzel, hogy a láthatatlan karakterek ne növeljék a számot.
- Illeszd a szöveget a Szószámláló eszközbe, és olvasd le a karaktereket és a szóköz nélküli karaktereket. A határértéksorok gyakori korlátokat mutatnak, de azt a számot használd, amelyet az űrlap számol.
- Ha az űrlap bájtokat számol, becsüld meg őket külön, ahogy fent.
- Ha az űrlap saját élő számlálót mutat, annak értékét fogadd el a sajátod helyett, és ezzel az eszközzel derítsd ki, miért tér el a kettő.
- Ha a szabály még mindig nem egyértelmű, hagyj tartalékot. A Szószámkorlátok ugyanezt a kérdést járja körül szavakra és platformszabályokra.
Szélhelyzetek
- A platform szabálya mindenek felett áll. Ahol a platformnak saját számlálója van, annak értékéhez igazodj, ne egy általános számlálóéhoz.
- Záró szóközök. Egy űrlap levághatja a mező elején és végén álló szóközöket, vagy nem. Egyetlen záró szóköz eggyel megváltoztathatja a számot.
- Másolt szöveg. Weboldalról másolt szöveg nem törhető szóközöket és láthatatlan karaktereket tartalmazhat. Tisztítsd meg a Rejtett karakterek eltávolítása eszközzel, mielőtt számolsz.
A Angol eredeti alapján, MI segítségével fordítva.
Hozzászólások
Még nincs hozzászólás. Legyél te az első.


