Mikä tämä työkalu on?
Tavallisessa ASCII-tekstissä (englanninkieliset kirjaimet, numerot, perusvälimerkit) merkkimäärä ja tavumäärä ovat sama luku — jokainen merkki vie tarkalleen yhden tavun UTF-8:ssa. Kun teksti sisältää aksentillisia kirjaimia, kiinalaisia/japanilaisia/korealaisia merkkejä, kyrillisiä kirjaimia, arabiaa, emojeja tai useimpia muita ei-ASCII-merkkejä, tämä ei enää pidä paikkaansa: yksittäinen merkki voi viedä 2, 3 tai 4 tavua UTF-8:ssa ja 2 tai 4 tavua UTF-16:ssa.
Tällä on merkitystä aina, kun järjestelmällä on tavurajoitus eikä merkkirajoitusta — tekstiviestit, tietokantasarakkeiden koot, API-hyötykuormien rajat ja jotkin sosiaaliset alustat mittaavat kaikki tavuina, ei merkkeinä, joten sama teksti voi ylittää rajan huomaamatta riippuen kielestä tai symboleista, joita se sisältää.
Miksi käyttää sitä?
- Näyttää merkkimäärän, UTF-8-tavut ja UTF-16-tavut rinnakkain.
- Laskee emojit ja muut Basic Multilingual Plane -alueen ulkopuoliset merkit oikein yhtenä merkkinä, ei kahtena.
- Päivittyy reaaliajassa kirjoittaessasi — ei painiketta painettavaksi.
- Toimii kokonaan selaimessasi — ei latausta palvelimelle.
- Ilmainen, ei rekisteröitymistä, ei rajoituksia.
Käyttöohje
- Kirjoita tai liitä tekstiä kenttään.
- Lue merkkimäärä, UTF-8-tavumäärä ja UTF-16-tavumäärä sen alta — ne päivittyvät kirjoittaessasi.
Esimerkki
Syöte
Hello, 世界! 🌍Tuloste
12 merkkiä, 19 UTF-8-tavua, 26 UTF-16-tavuaASCII-osa ("Hello, " ja "! ") vie 1 tavun per merkki UTF-8:ssa. Jokainen kiinalainen merkki vie 3 tavua, ja emoji vie 4 tavua — siksi tavumäärä on selvästi suurempi kuin merkkimäärä.
Yleisiä käyttötapoja
- Tarkistetaan, mahtuuko monikielinen tuotekuvaus tietokantasarakkeeseen, joka on määritelty tavupituuden eikä merkkimäärän perusteella.
- Tekstiviestisegmenttien käytön arviointi, koska tekstiviestit laskutetaan ja jaetaan tavukoon mukaan, ja ei-latinalaisella tekstillä on eri rajoitus segmenttiä kohden.
- Sen varmistaminen, että API-hyötykuorma tai lomakekenttä pysyy tavupohjaisen kokorajoituksen alla ennen lähettämistä.
- Sen ymmärtäminen, miksi "lyhyeltä näyttävä" merkkijono hylätään järjestelmässä, jossa on tavupohjainen pituustarkistus.
Usein kysytyt kysymykset
Miksi merkkimäärä ja tavumäärä eivät täsmää?
Unicode-teksti tallennetaan tavuina, ja kuinka monta tavua kukin merkki tarvitsee, riippuu koodauksesta ja itse merkistä. UTF-8:ssa ASCII-merkit vievät 1 tavun, useimmat aksentilliset latinalaiset kirjaimet sekä kyrilliset/kreikkalaiset/heprealaiset/arabialaiset kirjaimet vievät 2 tavua, useimmat CJK-merkit vievät 3 tavua, ja emojit vievät tyypillisesti 4 tavua. Merkkimäärä yksinkertaisesti laskee symbolit riippumatta siitä, miten ne on tallennettu.
Kumpaa tavumäärää minun pitäisi käyttää tavurajoitteisessa kentässä?
Käytä koodausta, jota järjestelmä todella käyttää tekstin tallentamiseen tai lähettämiseen — useimmat nykyaikaiset web-API:t, tietokannat ja tiedostot käyttävät UTF-8:aa, joten UTF-8-tavumäärä on yleensä olennainen. Jotkin vanhemmat järjestelmät (kuten Windowsin/Javan sisäinen merkkijonojen käsittely) käyttävät UTF-16:ta.
Laskeeko tämä työkalu emojit oikein?
Kyllä. Monet emojit tallennetaan sisäisesti UTF-16-"surrogaattikoodiyksiköiden" pareina, jotka naiivit laskentamenetelmät laskevat kahdeksi merkiksi. Tämä työkalu laskee Unicode-koodipisteet oikein, joten emoji lasketaan yhdeksi merkiksi, mikä vastaa sitä, kuinka monta merkkiä ihminen todella näkee.
Onko tämä sama kuin Sanalaskuri-työkalu?
Ei — Sanalaskuri keskittyy sanojen ja lauseiden määrään kirjoittamista varten. Tämä työkalu käsittelee nimenomaan tavukokoa verrattuna merkkimäärään, mikä on tärkeää teknisten rajoitusten kannalta, ei sanamäärävaatimusten.
Ladataanko tekstini jonnekin?
Ei. Laskenta tapahtuu paikallisesti selaimessasi JavaScriptin sisäänrakennetulla tekstikooderilla; mitään ei lähetetä palvelimelle.