CodeKitHub
Teksto įrankiai

Baitų skaitiklis — simbolių skaičius ir dydis baitais

Paskutinį kartą atnaujinta:

Įveskite arba įklijuokite tekstą ir realiu laiku matykite, kiek jame yra simbolių, palyginti su tuo, kiek baitų jis iš tikrųjų užima UTF-8 ir UTF-16 koduotėse — šie du skaičiai ima skirtis vos tik atsiranda ne ASCII simbolių (diakritinių ženklų, CJK teksto, jaustukų).

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

Kas yra šis įrankis?

Paprastam ASCII tekstui (angliškoms raidėms, skaitmenims, pagrindiniams skyrybos ženklams) simbolių skaičius ir baitų skaičius sutampa — kiekvienas simbolis UTF-8 koduotėje užima lygiai vieną baitą. Kai tekste atsiranda diakritinių raidžių, kinų / japonų / korėjiečių rašmenų, kirilicos, arabiško rašto, jaustukų ar daugumos kitų ne ASCII simbolių, tai nebegalioja: vienas simbolis UTF-8 koduotėje gali užimti 2, 3 ar 4 baitus, o UTF-16 koduotėje — 2 ar 4 baitus.

Tai svarbu visada, kai sistemoje taikomas baitų, o ne simbolių limitas — SMS žinutės, duomenų bazių stulpelių dydžiai, API duomenų krūvio apribojimai ir kai kurios socialinės platformos matuoja baitais, o ne simboliais, todėl tas pats tekstas gali nepastebimai viršyti ribą priklausomai nuo kalbos ar simbolių, kuriuos jis turi.

Kodėl jį naudoti?

  • Rodo simbolių skaičių, UTF-8 baitus ir UTF-16 baitus greta vienas kito.
  • Teisingai skaičiuoja jaustukus ir kitus simbolius už pagrindinės daugiakalbės plokštumos (Basic Multilingual Plane) ribų kaip vieną simbolį, o ne du.
  • Atnaujinama realiu laiku rašant — nereikia spausti jokio mygtuko.
  • Veikia visiškai jūsų naršyklėje — jokio įkėlimo į serverį.
  • Nemokama, be registracijos, be apribojimų.

Kaip naudoti

  1. Įveskite arba įklijuokite tekstą į laukelį.
  2. Po juo perskaitykite simbolių skaičių, UTF-8 baitų skaičių ir UTF-16 baitų skaičių — jie atnaujinami rašant.

Pavyzdys

Įvestis

Hello, 世界! 🌍

Išvestis

12 simbolių, 19 UTF-8 baitų, 26 UTF-16 baitai

ASCII dalis ("Hello, " ir "! ") UTF-8 koduotėje užima 1 baitą vienam simboliui. Kiekvienas kinų rašmuo užima 3 baitus, o jaustukas — 4 baitus, todėl baitų skaičius yra pastebimai didesnis nei simbolių skaičius.

Dažniausi naudojimo atvejai

  • Patikrinti, ar daugiakalbis produkto aprašymas tilps duomenų bazės stulpelyje, apibrėžtame pagal ilgį baitais, o ne simbolių skaičių.
  • Įvertinti SMS segmentų skaičių, nes SMS apmokestinamos ir skaidomos pagal dydį baitais, o ne lotyniško rašto tekstui taikoma kitokia riba vienam segmentui.
  • Patikrinti, ar API duomenų krūvis arba formos laukas prieš pateikiant neviršija baitais grįsto dydžio apribojimo.
  • Suprasti, kodėl eilutę, kuri "atrodo trumpa", sistema atmeta dėl baitais grįsto ilgio patikrinimo.

Dažniausiai užduodami klausimai

Kodėl simbolių skaičius ir baitų skaičius nesutampa?

Unikodo tekstas saugomas kaip baitai, o kiek baitų reikia kiekvienam simboliui, priklauso nuo koduotės ir paties simbolio. UTF-8 koduotėje ASCII simboliai užima 1 baitą, dauguma diakritinių lotyniškų raidžių bei kirilicos, graikų, hebrajų ir arabų raidžių užima 2 baitus, dauguma CJK rašmenų užima 3 baitus, o jaustukai paprastai užima 4 baitus. Simbolių skaičius tiesiog suskaičiuoja ženklus, neatsižvelgdamas į tai, kaip jie saugomi.

Kurį baitų skaičių naudoti laukui su baitų apribojimu?

Naudokite tą koduotę, kurią sistema iš tikrųjų naudoja tekstui saugoti ar perduoti — dauguma šiuolaikinių žiniatinklio API, duomenų bazių ir failų naudoja UTF-8, todėl paprastai aktualus yra UTF-8 baitų skaičius. Kai kurios senesnės sistemos (pavyzdžiui, vidinis eilučių apdorojimas Windows / Java aplinkoje) naudoja UTF-16.

Ar šis įrankis teisingai skaičiuoja jaustukus?

Taip. Daugelis jaustukų viduje saugomi kaip pora UTF-16 "pakaitinių" (surogatinių) kodo vienetų, kuriuos naivūs skaičiavimo metodai užskaito kaip 2 simbolius. Šis įrankis teisingai skaičiuoja Unikodo kodo taškus, todėl jaustukas skaičiuojamas kaip 1 simbolis — taip, kiek simbolių žmogus iš tikrųjų mato.

Ar tai tas pats, kas įrankis Žodžių skaitiklis?

Ne — Žodžių skaitiklis skirtas žodžių ir sakinių skaičiui rašymo tikslais. Šis įrankis konkrečiai skirtas dydžiui baitais, palyginti su simbolių skaičiumi, kas svarbu techniniams apribojimams, o ne žodžių skaičiaus reikalavimams.

Ar mano tekstas kur nors įkeliamas?

Ne. Skaičiavimas vyksta vietoje, jūsų naršyklėje, naudojant įtaisytąjį „JavaScript“ teksto koduotoją; niekas nesiunčiama į serverį.

Susiję įrankiai