CodeKitHub
Textaverkfæri

Bætateljari — Fjöldi stafa á móti bætastærð

Síðast uppfært:

Skrifaðu eða límdu texta og sjáðu í rauntíma hversu marga stafi hann inniheldur á móti því hversu mörg bæti hann tekur í raun í UTF-8 og UTF-16 — tölurnar tvær víkja hvor frá annarri um leið og stafir utan ASCII (broddstafir, CJK-texti, tjámerki) koma við sögu.

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

Hvað er þetta verkfæri?

Fyrir venjulegan ASCII-texta (enska bókstafi, tölustafi, grunn greinarmerki) eru fjöldi stafa og fjöldi bæta sama talan — hver stafur tekur nákvæmlega eitt bæti í UTF-8. Um leið og texti inniheldur broddstafi, kínverska/japanska/kóreska stafi, kýrillíska stafi, arabísku, tjámerki eða flesta aðra stafi utan ASCII, hættir þetta að vera satt: einn stafur getur tekið 2, 3 eða 4 bæti í UTF-8, og 2 eða 4 bæti í UTF-16.

Þetta skiptir máli hvenær sem kerfi hefur takmörk í bætum frekar en stöfum — SMS-skilaboð, stærðir dálka í gagnagrunnum, takmarkanir á API-gagnaflutningi og sumir samfélagsmiðlar mæla allt í bætum, ekki stöfum, þannig að sami texti getur farið yfir takmörk án viðvörunar eftir því hvaða tungumál eða tákn hann inniheldur.

Af hverju að nota það?

  • Sýnir fjölda stafa, UTF-8 bæti og UTF-16 bæti hlið við hlið.
  • Telur tjámerki og aðra stafi utan Basic Multilingual Plane rétt sem einn staf, ekki tvo.
  • Uppfærist í rauntíma á meðan þú skrifar — enginn hnappur til að smella á.
  • Keyrir algjörlega í vafranum þínum — engin gagnaupphleðsla.
  • Ókeypis, engin skráning, engin takmörk.

Hvernig á að nota það

  1. Skrifaðu eða límdu texta í reitinn.
  2. Lestu fjölda stafa, fjölda UTF-8 bæta og fjölda UTF-16 bæta fyrir neðan — þau uppfærast á meðan þú skrifar.

Dæmi

Inntak

Hello, 世界! 🌍

Úttak

12 stafir, 19 UTF-8 bæti, 26 UTF-16 bæti

ASCII-hlutinn ("Hello, " og "! ") tekur 1 bæti fyrir hvern staf í UTF-8. Hver kínverskur stafur tekur 3 bæti og tjámerkið tekur 4 bæti — þess vegna er bætafjöldinn áberandi hærri en stafafjöldinn.

Algeng notkun

  • Athuga hvort fjöltyngd vörulýsing rúmist í gagnagrunnsdálki sem skilgreindur er eftir bætalengd frekar en fjölda stafa.
  • Áætla notkun SMS-hluta, þar sem SMS er rukkað og skipt eftir bætastærð, og texti sem er ekki á latnesku letri hefur önnur takmörk fyrir hvern hluta.
  • Staðfesta að API-gagnaflutningur eða formreitur haldist undir bætamiðuðum stærðartakmörkum áður en sent er inn.
  • Skilja hvers vegna strengur sem „lítur út fyrir að vera stuttur“ er hafnað af kerfi með bætamiðaðri lengdarathugun.

Algengar spurningar

Hvers vegna passa fjöldi stafa og fjöldi bæta ekki saman?

Unicode-texti er geymdur sem bæti og hversu mörg bæti hver stafur þarf fer eftir kóðuninni og stafnum sjálfum. Í UTF-8 taka ASCII-stafir 1 bæti, flestir latneskir broddstafir og kýrillískir/grískir/hebreskir/arabískir stafir taka 2 bæti, flestir CJK-stafir taka 3 bæti og tjámerki taka venjulega 4 bæti. Fjöldi stafa telur einfaldlega tákn, óháð því hvernig þau eru geymd.

Hvaða bætafjölda ætti ég að nota fyrir reit með bætatakmörkun?

Notaðu þá kóðun sem kerfið notar í raun til að geyma eða senda textann — flest nútíma vef-API, gagnagrunnar og skrár nota UTF-8, þannig að UTF-8 bætafjöldi er venjulega sá sem skiptir máli. Sum eldri kerfi (eins og innri strengjameðferð í Windows/Java) nota UTF-16.

Telur þetta tól tjámerki rétt?

Já. Mörg tjámerki eru geymd innbyrðis sem par af UTF-16 „staðgengils“-kóðaeiningum, sem einfaldar talningaraðferðir telja sem 2 stafi. Þetta tól telur Unicode-kóðapunkta rétt, þannig að tjámerki er talið sem 1 stafur, í samræmi við hversu marga stafi manneskja sér í raun.

Er þetta það sama og Orðateljaratólið?

Nei — Orðateljari einbeitir sér að fjölda orða og setninga fyrir ritun. Þetta tól snýst sérstaklega um bætastærð á móti fjölda stafa, sem skiptir máli fyrir tæknileg takmörk frekar en kröfur um orðafjölda.

Er textinn minn hlaðinn upp einhvers staðar?

Nei. Talning fer fram staðbundið í vafranum þínum með innbyggðum textakóðara JavaScript; ekkert er sent á netþjón.