Đếm ký tự có dấu cách hay không: form tính theo cách nào
Form, trang tuyển dụng CV, tin nhắn SMS hay bài đăng mạng xã hội thường đếm ký tự theo một trong hai cách: có dấu cách hoặc không có dấu cách. Hãy đọc nhãn hoặc dòng hướng dẫn của ô nhập trước, vì thường nó sẽ ghi rõ. Nếu không ghi gì, hãy dùng cách đếm nghiêm ngặt hơn, thường là cách không tính dấu cách. Emoji và một số chữ có dấu cũng có thể được tính thành nhiều hơn một ký tự trong các hệ thống đo văn bản theo đơn vị mã hoặc byte, nên một đoạn văn có thể đạt trong công cụ này nhưng lại vượt giới hạn ở nơi khác. Hãy đếm bằng công cụ có cùng quy tắc với form.
Đếm từVăn bản có vượt giới hạn không?Dùng miễn phíCó dấu cách hoặc không có dấu cách
- Có dấu cách đếm mỗi ký tự bạn gõ, kể cả mỗi dấu cách, thành một ký tự.
- Không có dấu cách loại bỏ toàn bộ ký tự khoảng trắng trước khi đếm, nên các từ dính liền với nhau. Con số không dấu cách của [[bộ đếm từ]] (Bộ đếm từ) bỏ đi mọi ký tự khoảng trắng, gồm xuống dòng, tab và khoảng trắng không ngắt, rồi đếm phần còn lại.
"Hello world" có 11 ký tự khi tính cả dấu cách và 10 ký tự khi không tính. Form yêu cầu nhập ký tự không có dấu cách thì cần số thứ hai.
Vì sao một emoji có thể tính thành hai
Độ dài của văn bản có hai kiểu. Kiểu thứ nhất là kiểu người dùng thấy: một cụm grapheme, tức là một ký tự nhìn thấy được dù nó được tạo từ nhiều điểm mã. Kiểu thứ hai là kiểu máy tính lưu trữ. Độ dài chuỗi trong JavaScript, và nhiều hệ thống cũ hơn, đếm theo đơn vị mã UTF-16. Hầu hết chữ cái chiếm một đơn vị, nhưng các ký tự nằm ngoài Basic Multilingual Plane, trong đó có nhiều emoji, chiếm hai đơn vị. Emoji ngón tay cái giơ lên, U+1F44D, trông như một ký tự nhưng có hai đơn vị UTF-16, nên bộ đếm theo đơn vị mã sẽ báo 2.
[[bộ đếm từ]] ở đây đếm các ký tự nhìn thấy được, nên emoji ngón tay cái giơ lên được tính là 1. Emoji gia đình cũng được tính là 1, dù nó gồm nhiều điểm mã nối với nhau bằng bộ nối không độ rộng. Form đếm theo đơn vị mã sẽ báo nhiều hơn, và chênh lệch tăng theo số emoji trong văn bản.
Chữ có dấu
Chữ é có thể được lưu theo hai cách. Dưới dạng một điểm mã, U+00E9, nó là một đơn vị ở mọi nơi. Dưới dạng chữ e theo sau bởi dấu sắc tổ hợp, U+0301, nó là hai điểm mã và hai đơn vị. Hai cách trên màn hình trông giống hệt nhau. Bộ đếm tính theo điểm mã hoặc đơn vị sẽ cho 2 với cách thứ hai, còn [[bộ đếm từ]] cho 1 với cả hai.
Giới hạn theo byte tạo thêm một khác biệt. Trong UTF-8, é chiếm hai byte và đa số emoji chiếm bốn byte. Một ô nhập có giới hạn byte có thể chứa ít chữ có dấu hoặc emoji hơn số ký tự cho thấy. [[bộ đếm từ]] không hiển thị byte, nên hãy ước tính riêng.
Xuống dòng và ký tự ẩn
Một lần xuống dòng là một ký tự trong ô nhập. Nhiều hệ thống lưu xuống dòng kiểu Windows thành hai ký tự, ký tự carriage return và line feed, và dữ liệu form gửi lên web cũng mang xuống dòng theo kiểu đó. Vì vậy số đếm chạy trên máy chủ có thể cao hơn những gì ô nhập cho thấy, mỗi lần xuống dòng thêm một. Hãy đếm văn bản đúng như sẽ được gửi đi, không chỉ như bạn đã gõ.
Khoảng trắng không độ rộng thì hoạt động khác. Cách đếm không dấu cách không coi chúng là khoảng trắng, nên chúng vẫn nằm trong con số và làm nó tăng lên. Hãy xóa ký tự ẩn trước. Công cụ đó giữ lại tab và xuống dòng, đồng thời đổi khoảng trắng không ngắt thành dấu cách thường, và khi đó cách đếm không dấu cách sẽ loại bỏ chúng. Hướng dẫn về ký tự ẩn giải thích các ký tự này xuất hiện từ đâu.
Một văn bản, năm cách đếm
Lấy từ "Café", một dấu cách và emoji ngón tay cái giơ lên, U+1F44D, với é được lưu như một điểm mã. Các cách đo khác nhau cho ra tổng số khác nhau:
| Cách đo | Số đếm |
|---|---|
| Ký tự nhìn thấy, có dấu cách ([[bộ đếm từ]]) | 6 |
| Điểm mã | 6 |
| Đơn vị mã UTF-16 (độ dài trong JavaScript) | 7 |
| Byte UTF-8 | 10 |
| Ký tự nhìn thấy, không có dấu cách ([[bộ đếm từ]]) | 5 |
Mỗi tổng đều đúng với cách đo của nó. Form quyết định cách đo nào được tính, đó là lý do quy tắc quan trọng hơn bất kỳ con số đơn lẻ nào.
Các bước
- Đọc quy tắc: ký tự, byte hay từ, và có tính dấu cách hay không.
- Làm sạch văn bản bằng xóa ký tự ẩn, để các ký tự vô hình không làm số đếm tăng lên.
- Dán văn bản vào bộ đếm từ và đọc số ký tự cùng số ký tự không có dấu cách. Các dòng giới hạn cho thấy những mức phổ biến, nhưng con số cần dùng là con số mà form tính.
- Nếu form đếm byte, hãy ước tính riêng như trên.
- Nếu form có bộ đếm trực tiếp riêng, hãy tin con số đó hơn số của bạn, rồi dùng công cụ này để tìm hiểu vì sao hai số khác nhau.
- Nếu quy tắc vẫn chưa rõ, hãy chừa một khoảng dự phòng. Giới hạn số từ đề cập cùng vấn đề đối với từ và quy tắc của các nền tảng.
Trường hợp đặc biệt
- Quy tắc của nền tảng là quy tắc cuối cùng. Nếu nền tảng có bộ đếm riêng, hãy khớp với con số của nó thay vì một bộ đếm chung chung.
- Dấu cách thừa ở cuối. Form có thể cắt dấu cách ở đầu và cuối ô nhập, hoặc có thể không. Một dấu cách thừa ở cuối có thể làm số đếm thay đổi một đơn vị.
- Văn bản sao chép. Văn bản sao chép từ trang web có thể chứa khoảng trắng không ngắt và ký tự ẩn. Hãy làm sạch bằng xóa ký tự ẩn trước khi đếm.
Được dịch từ Bản tiếng Anh với sự hỗ trợ của AI.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.


