CodeKitHub
Tekstitööriistad

Baitide loendur — Märkide arv vs baitide suurus

Viimati uuendatud:

Kirjuta või kleebi tekst ja vaata reaalajas, mitu märki see sisaldab võrreldes sellega, mitu baiti see UTF-8 ja UTF-16 kodeeringus tegelikult võtab — need kaks arvu hakkavad erinema niipea, kui tekstis on mitte-ASCII märke (rõhumärgid, CJK-tekst, emotikonid).

0
Characters
0
UTF-8 bytes
0
UTF-16 bytes

Mis see tööriist on?

Tavalise ASCII-teksti (inglise tähed, numbrid, põhikirjavahemärgid) puhul on märkide arv ja baitide arv sama number — iga märk võtab UTF-8-s täpselt ühe baidi. Kui tekst sisaldab rõhumärkidega tähti, hiina/jaapani/korea märke, kirillitsat, araabia kirja, emotikone või enamikku muid mitte-ASCII märke, see enam ei kehti: üks märk võib UTF-8-s võtta 2, 3 või 4 baiti ning UTF-16-s 2 või 4 baiti.

See on oluline alati, kui süsteemil on piirang baitides, mitte märkides — SMS-sõnumid, andmebaasi veergude suurused, API andmemahu piirangud ja mõned sotsiaalmeediaplatvormid mõõdavad kõik baitides, mitte märkides, mistõttu sama tekst võib vaikimisi ületada piiri sõltuvalt keelest või sümbolitest, mida see sisaldab.

Miks seda kasutada?

  • Kuvab märkide arvu, UTF-8 baidid ja UTF-16 baidid kõrvuti.
  • Loeb emotikonid ja teised Basic Multilingual Plane'ist väljapoole jäävad märgid korrektselt ühe märgina, mitte kahena.
  • Uueneb reaalajas kirjutamise ajal — nuppu vajutama ei pea.
  • Töötab täielikult sinu brauseris — ei mingit üleslaadimist.
  • Tasuta, registreerimiseta, piiranguteta.

Kuidas kasutada

  1. Kirjuta või kleebi tekst kasti.
  2. Loe allolevat märkide arvu, UTF-8 baitide arvu ja UTF-16 baitide arvu — need uuenevad kirjutamise ajal.

Näide

Sisend

Hello, 世界! 🌍

Tulemus

12 märki, 19 UTF-8 baiti, 26 UTF-16 baiti

ASCII-osa ("Hello, " ja "! ") võtab UTF-8-s 1 baidi märgi kohta. Iga hiina märk võtab 3 baiti ning emotikon võtab 4 baiti — seetõttu on baitide arv märgatavalt suurem kui märkide arv.

Levinud kasutusviisid

  • Kontrollimine, kas mitmekeelne tootekirjeldus mahub andmebaasi veergu, mis on määratletud baitide pikkuse, mitte märkide arvu järgi.
  • SMS-segmentide kasutuse hindamine, kuna SMS-e arveldatakse ja jagatakse baitide suuruse järgi ning mitte-ladina tekstil on segmendi kohta erinev piirang.
  • Kontrollimine, et API andmemaht või vormiväli jääb enne esitamist baitidel põhineva suuruspiirangu alla.
  • Mõistmine, miks süsteem, millel on baitidel põhinev pikkuse kontroll, lükkab tagasi stringi, mis "näib lühike".

Korduma kippuvad küsimused

Miks märkide arv ja baitide arv ei kattu?

Unicode-tekst salvestatakse baitidena ning see, mitu baiti iga märk vajab, sõltub kodeeringust ja märgist endast. UTF-8-s võtavad ASCII-märgid 1 baidi, enamik rõhumärkidega ladina tähti ning kirillitsa/kreeka/heebrea/araabia tähed võtavad 2 baiti, enamik CJK-märke võtab 3 baiti ning emotikonid võtavad tavaliselt 4 baiti. Märkide arv lihtsalt loeb sümboleid, sõltumata sellest, kuidas need salvestatakse.

Millist baitide arvu peaksin kasutama baitidega piiratud välja jaoks?

Kasuta kodeeringut, mida süsteem teksti salvestamiseks või edastamiseks tegelikult kasutab — enamik tänapäevaseid veebi-API-sid, andmebaase ja faile kasutab UTF-8, seega on tavaliselt oluline UTF-8 baitide arv. Mõned vanemad süsteemid (näiteks Windowsi/Java sisemine stringide käsitlus) kasutavad UTF-16-t.

Kas see tööriist loeb emotikone õigesti?

Jah. Paljud emotikonid on sisemiselt salvestatud kui paar UTF-16 "asendus" (surrogate) koodiühikut, mida naiivsed loendusmeetodid loevad 2 märgina. See tööriist loeb Unicode koodipunkte õigesti, nii et emotikon loetakse 1 märgina, vastates sellele, mitu märki inimene tegelikult näeb.

Kas see on sama, mis Sõnaloenduri tööriist?

Ei — Sõnaloendur keskendub sõnade ja lausete arvule kirjutamisel. See tööriist käsitleb konkreetselt baitide suurust võrreldes märkide arvuga, mis on oluline tehniliste piirangute, mitte sõnade arvu nõuete puhul.

Kas minu tekst laaditakse kuhugi üles?

Ei. Loendamine toimub kohapeal sinu brauseris, kasutades JavaScripti sisseehitatud tekstikodeerijat; midagi ei saadeta serverisse.

Seotud tööriistad