Tiada muat naik, 100% setempat, tiada akaun

Artikel

Perkataan, aksara dan huruf besar-kecil: cara kiraan teks sebenarnya berfungsi

Mengira teks kedengaran seperti satu-satunya tugas yang tidak mungkin dilakukan komputer secara salah, tetapi dua alat boleh saja melaporkan angka berbeza untuk perenggan yang sama, satu emoji boleh menghabiskan 70 aksara SMS anda, dan "280 aksara" di X tidak bermaksud apa yang kelihatan. Di sebalik tugas harian menulis mengikut had, menamakan semula pemboleh ubah atau mengisi mock-up, terdapat beberapa peraturan yang berbaloi diketahui. Artikel ini menyusuri peraturan tersebut, menggunakan alat teks kecil di laman ini sebagai contoh kerja.

Apa yang dikira sebagai satu perkataan

Kebanyakan pengira, termasuk milik kami, mentakrifkan perkataan seperti cara jurutaip melakukannya: satu rentetan aksara kelihatan di antara ruang atau baris baharu. Satu peraturan ini sahaja sudah menjelaskan kebanyakan percanggahan. Adakah "state-of-the-art" satu perkataan atau empat? Dengan pemisahan ruang, ia satu. Adakah "don't" satu perkataan atau dua? Satu. Nombor, URL dan alamat e-mel masing-masing turut dikira sebagai satu perkataan. Konvensyen ini tidak berfungsi untuk bahasa yang ditulis tanpa ruang: dalam bahasa Cina atau Jepun tiada ruang untuk dipisahkan, jadi "kiraan perkataan" tidak bermakna dan sebaiknya anda menggunakan kiraan aksara sebagai gantinya. Anggaran masa membaca menambah satu lagi konvensyen di atasnya: pengira perkataan kami membahagikan kiraan perkataan dengan 200 perkataan seminit, purata lazim untuk pembacaan senyap orang dewasa, jadi anggap hasilnya sebagai angka perancangan, bukan janji.

Satu aksara tidak semestinya satu simbol

Kiraan aksara lebih kabur, kerana teks Unicode mempunyai lapisan. Apa yang anda anggap sebagai satu aksara (grafem) mungkin dibina daripada beberapa titik kod, dan setiap titik kod menduduki satu atau dua daripada unit 16-bit yang dikira oleh sifat length JavaScript. Emoji wajah tersenyum lebar ialah satu grafem tetapi dua unit tersebut, jadi pengira mudah melaporkan 2. Emoji keluarga yang dibina dengan menggabungkan beberapa emoji orang ialah satu grafem, lima titik kod dan lapan unit. Malah teks biasa mempunyai masalah ini: "café" boleh disimpan dengan é sebagai satu titik kod atau sebagai e diikuti aksen gabungan, sama di skrin tetapi berbeza dalam kiraan. Inilah sebabnya dua pengira tidak sepakat: mereka mengukur lapisan berbeza. Peraturan untuk mengumpulkan titik kod menjadi aksara yang dilihat pengguna diseragamkan dalam lampiran segmentasi teks Unicode (UAX #29), dan pengira yang dibina dengan baik mengikutinya.

Tiga rentetan diukur pada tiga lapisan Unicode: emoji wajah tersenyum lebar ialah 1 grafem dan 2 unit UTF-16, emoji keluarga ialah 1 grafem, 5 titik kod dan 8 unit, dan café yang terurai ialah 4 grafem tetapi 5 titik kod

Had yang sebenarnya anda kira untuknya

Had aksara adalah tempat kiraan berubah menjadi wang. Satu SMS membawa 160 aksara dalam abjad GSM-7 yang padat, tetapi satu aksara sahaja di luar itu (emoji, atau huruf yang tiada dalam abjad tersebut) menukar keseluruhan mesej kepada UCS-2 dan had jatuh kepada 70; mesej panjang dipecahkan kepada bahagian 153 atau 67 aksara, masing-masing dicaj berasingan. X membenarkan 280 aksara setiap siaran, tetapi memberi pemberat: setiap URL dikira sebagai 23 tanpa mengira panjang sebenarnya, dan kebanyakan emoji serta aksara CJK dikira sebagai 2. Petikan carian pula mempunyai had lembut: Google memotong tajuk dan huraian mengikut lebar piksel, jadi angka lazim 60 aksara untuk tajuk dan 155 aksara untuk huraian adalah konvensyen kerja, bukan jaminan. Apabila had itu penting, kira dengan peraturan yang sama seperti platform berkenaan, dan tinggalkan ruang lebih.

Huruf besar-kecil ialah konvensyen, dan setiap gaya ada tempatnya

Menukar huruf besar-kecil kedengaran remeh sehingga anda bertemu konvensyen yang bertindih di atasnya. Ini merujuk kepada teks aksara Latin, seperti pengecam kod atau tajuk bahasa Inggeris. Prosa mengenali Title Case, digemari tajuk berita AS, dan sentence case, yang lebih digemari oleh kebanyakan panduan gaya Eropah. Kod mempunyai keluarga sendiri: camelCase untuk pemboleh ubah dalam JavaScript dan Java, PascalCase untuk nama kelas dan komponen, snake_case dalam Python dan pangkalan data, SCREAMING_SNAKE_CASE untuk pemalar, dan kebab-case untuk kelas CSS, nama fail dan slug URL, di mana huruf kecil mengelakkan perangkap klasik pautan yang hanya berbeza pada huruf besar-kecil. Menukar segelintir pengecam secara manual tidak mengapa; menukar senarai lapan puluh ialah cara kesilapan menaip terhasil. Penukar huruf besar-kecil melaksanakan penukaran ini secara mekanikal, termasuk bahagian rumit seperti menentukan apa berlaku pada akronim dan pemisah sedia ada.

Frasa user profile page ditulis dalam enam gaya huruf besar-kecil: camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case dan Title Case

Teks pengisi, dan fail yang enggan dibuka telefon anda

Dua lagi tugas melengkapkan set ini. Bentuk letak (layout) dinilai dengan teks ruang letak kerana ayat sebenar menarik perhatian kepada maknanya; lorem ipsum berfungsi tepat kerana ia hampir, tetapi tidak sepenuhnya, bahasa Latin yang boleh dibaca. Penjana kami menghasilkannya mengikut perenggan, ayat atau perkataan, jadi mock-up boleh diisi kepada panjang yang realistik dan bukan satu blok tampal yang diulang. Dan apabila seseorang menghantar fail .md, .json, .csv atau .log yang enggan dibuka telefon, pemapar teks berasaskan pelayar memaparkannya tanpa memasang editor atau menghantar fail itu ke laman penukaran. Semua di atas, termasuk pengiraan, berjalan sepenuhnya dalam pelayar anda: teks tidak pernah meninggalkan peranti anda, yang lebih penting daripada biasa apabila perkara yang anda ukur ialah draf, kontrak atau log penuh laluan dalaman.

Alat dalam artikel ini

Soalan lazim

Berapa banyak perkataan yang muat pada satu halaman?

Konvensyen penerbitan menganggarkan kira-kira 500 perkataan untuk halaman langkau baris tunggal dan kira-kira 250 untuk langkau baris berganda, dengan andaian fon 12-point standard pada kertas A4 atau letter. Dokumen sebenar menyimpang daripada angka ini setiap kali fon, jidar atau tajuk berubah, itulah sebabnya tugasan dan penyerahan semakin kerap menetapkan kiraan perkataan berbanding kiraan halaman. Jika anda sudah ada teks itu, kira secara terus dan langkau anggaran; konvensyen halaman hanya berguna sebelum teks itu wujud.

Apakah sebenarnya makna lorem ipsum?

Ia bahasa Latin yang dikocak, bukan bahasa mengarut. Petikan piawai dipotong dan disusun semula daripada De finibus bonorum et malorum karya Cicero, sebuah teks falsafah dari 45 SM; serpihan "dolorem ipsum" bermaksud "kesakitan itu sendiri". Pengocakan itulah intinya: teks kelihatan seperti bahasa semula jadi, dengan panjang perkataan dan irama ayat yang munasabah, tetapi menolak untuk dibaca, jadi penonton menilai bentuk letak dan bukan kandungan teks. Penyebarannya pada zaman moden biasanya dikaitkan dengan kepingan pemindahan Letraset pada tahun 1960-an dan perisian penerbitan atas meja pada tahun 1980-an.

Mengapa platform mengira lebih sedikit aksara berbanding pengira saya?

Kerana platform mengira menggunakan pemberat mereka sendiri. X bermula daripada 280 tetapi mencaj setiap URL sebagai 23 aksara serta kebanyakan emoji dan aksara CJK sebagai 2 setiap satu. Get laluan SMS menukar keseluruhan mesej daripada abjad GSM-7 160-aksara kepada mod UCS-2 70-aksara sebaik sahaja satu aksara memerlukannya. Dan mana-mana platform boleh mengira unit kod dan bukan grafem, jadi satu emoji keluarga sahaja boleh menghabiskan 8 daripada had itu. Apabila nombor pada butang tidak sepadan dengan pengira anda, peraturan platform yang menang; tulis dengan ruang lebih atau semak menggunakan pengira platform itu sendiri sebelum menghantar.

Sumber