CodeKitHub
Alat Teks

Pengira Bait — Kiraan Aksara lwn Saiz Bait

Kemas kini terakhir:

Taip atau tampal teks dan lihat secara langsung berapa banyak aksara yang dikandunginya berbanding berapa banyak bait yang sebenarnya diambil dalam UTF-8 dan UTF-16 — kedua-dua angka ini berbeza sebaik sahaja aksara bukan-ASCII (aksen, teks CJK, emoji) terlibat.

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

Apakah alat ini?

Untuk teks ASCII biasa (huruf Inggeris, digit, tanda baca asas), kiraan aksara dan kiraan bait adalah nombor yang sama — setiap aksara mengambil tepat satu bait dalam UTF-8. Sebaik sahaja teks mengandungi huruf beraksen, aksara Cina/Jepun/Korea, Cyrillic, Arab, emoji, atau kebanyakan aksara bukan-ASCII lain, ini tidak lagi benar: satu aksara boleh mengambil 2, 3, atau 4 bait dalam UTF-8, dan 2 atau 4 bait dalam UTF-16.

Ini penting apabila sistem mempunyai had bait dan bukannya had aksara — mesej SMS, saiz lajur pangkalan data, had muatan API, dan sesetengah platform sosial semuanya mengukur dalam bait, bukan aksara, jadi teks yang sama boleh melebihi had secara senyap bergantung pada bahasa atau simbol yang dikandunginya.

Kenapa guna alat ini?

  • Menunjukkan kiraan aksara, bait UTF-8, dan bait UTF-16 bersebelahan.
  • Mengira emoji dan aksara lain di luar Basic Multilingual Plane dengan betul sebagai satu aksara, bukan dua.
  • Dikemas kini secara langsung semasa anda menaip — tiada butang untuk diklik.
  • Berjalan sepenuhnya dalam pelayar anda — tiada muat naik.
  • Percuma, tiada pendaftaran, tiada had.

Cara menggunakannya

  1. Taip atau tampal teks ke dalam kotak.
  2. Baca kiraan aksara, kiraan bait UTF-8, dan kiraan bait UTF-16 di bawahnya — ia dikemas kini semasa anda menaip.

Contoh

Input

Hello, 世界! 🌍

Hasil

12 aksara, 19 bait UTF-8, 26 bait UTF-16

Bahagian ASCII ("Hello, " dan "! ") mengambil 1 bait setiap aksara dalam UTF-8. Setiap aksara Cina mengambil 3 bait, dan emoji mengambil 4 bait — itulah sebabnya kiraan bait jauh lebih tinggi daripada kiraan aksara.

Kegunaan biasa

  • Menyemak sama ada penerangan produk berbilang bahasa akan muat dalam lajur pangkalan data yang ditakrifkan mengikut panjang bait dan bukannya kiraan aksara.
  • Menganggarkan penggunaan segmen SMS, kerana SMS dikenakan bil dan dibahagikan mengikut saiz bait, dan teks bukan Latin mempunyai had berbeza bagi setiap segmen.
  • Mengesahkan muatan API atau medan borang kekal di bawah had saiz berasaskan bait sebelum menghantarnya.
  • Memahami mengapa rentetan yang "kelihatan pendek" ditolak oleh sistem dengan pemeriksaan panjang berasaskan bait.

Soalan lazim

Mengapa kiraan aksara dan kiraan bait tidak sepadan?

Teks Unicode disimpan sebagai bait, dan berapa banyak bait yang diperlukan oleh setiap aksara bergantung pada pengekodan dan aksara itu sendiri. Dalam UTF-8, aksara ASCII mengambil 1 bait, kebanyakan huruf Latin beraksen serta Cyrillic/Greek/Hebrew/Arab mengambil 2 bait, kebanyakan aksara CJK mengambil 3 bait, dan emoji biasanya mengambil 4 bait. Kiraan aksara hanya mengira simbol, tanpa mengambil kira cara ia disimpan.

Kiraan bait yang mana patut saya gunakan untuk medan yang terhad bait?

Gunakan pengekodan yang sebenarnya digunakan oleh sistem untuk menyimpan atau menghantar teks — kebanyakan API web, pangkalan data, dan fail moden menggunakan UTF-8, jadi kiraan bait UTF-8 biasanya yang relevan. Sesetengah sistem lama (seperti pengendalian rentetan dalaman Windows/Java) menggunakan UTF-16.

Adakah alat ini mengira emoji dengan betul?

Ya. Banyak emoji disimpan secara dalaman sebagai sepasang unit kod "surrogate" UTF-16, yang dikira oleh kaedah pengiraan naif sebagai 2 aksara. Alat ini mengira titik kod Unicode dengan betul, jadi emoji dikira sebagai 1 aksara, sepadan dengan berapa banyak aksara yang sebenarnya dilihat oleh seseorang.

Adakah ini sama dengan alat Pengira Perkataan?

Tidak — Pengira Perkataan memberi tumpuan kepada kiraan perkataan dan ayat untuk penulisan. Alat ini khusus mengenai saiz bait berbanding kiraan aksara, yang penting untuk had teknikal dan bukannya keperluan kiraan perkataan.

Adakah teks saya dimuat naik ke mana-mana?

Tidak. Pengiraan berlaku secara tempatan dalam pelayar anda menggunakan pengekod teks terbina dalam JavaScript; tiada apa-apa dihantar ke pelayan.

Alat berkaitan