Cập nhật lần cuối:

Giới hạn ký tự Bluesky và mẹo đăng bài

10 phút đọc

Bluesky là một mạng xã hội được xây dựng trên AT Protocol, một framework phi tập trung. Nó bắt đầu như một dự án được công bố trong nội bộ Twitter vào năm 2019 bởi đồng sáng lập Jack Dorsey, và đến tháng 2 năm 2024 thì bỏ yêu cầu thư mời để mở công khai. Giới hạn ký tự bài đăng là 300 ký tự, nhưng cách Bluesky đếm "300 ký tự" đó khác biệt cơ bản so với các nền tảng mạng xã hội khác. Bài viết này đi sâu vào đặc tả kỹ thuật của AT Protocol và đề cập các chiến lược đăng bài hiệu quả.

Đếm Grapheme Cluster - Cách tính ký tự độc đáo của Bluesky

Bluesky đếm ký tự bằng "cụm grapheme," đơn vị văn bản nhỏ nhất mà con người nhận biết là một ký tự đơn, theo định nghĩa của Unicode Standard Annex #29 (UAX #29). Cách tiếp cận này khác biệt cơ bản so với cách X và Threads đếm ký tự.

Xem xét emoji tông da "👋🏽." Bên trong, nó bao gồm hai code point Unicode: U+1F44B (vẫy tay) và U+1F3FD (bổ sung tông da). X đếm đây là 2 ký tự, nhưng Bluesky đếm là 1 cụm grapheme. Tương tự, emoji cờ "🇯🇵" bao gồm hai code point Regional Indicator (U+1F1EF + U+1F1F5), nhưng Bluesky đếm là một ký tự duy nhất.

Điều này trở nên quan trọng hơn với emoji phức tạp. Emoji gia đình "👨‍👩‍👧‍👦" bao gồm 7 code point (4 emoji + 3 kết nối ZWJ), nhưng Bluesky đếm chỉ là 1 ký tự. X đếm mọi emoji là 2 ký tự cố định bất kể độ phức tạp, nên emoji này tính là 2 trên X. Với bài đăng dùng nhiều emoji, Bluesky vẫn cho phép chứa nhiều thông tin hơn nhờ mức đếm mỗi emoji thấp hơn.

Cùng ba emoji trong một bài đăng - mức tiêu tốn trên Bluesky và trên X
Emoji trong bài đăngCấu trúc code point bên trongBluesky tiêu tốn (cụm grapheme)X tiêu tốn (mỗi emoji cố định 2)
👋🏽 Vẫy tay có tông daU+1F44B + U+1F3FD (2 code point)1 ký tự2 ký tự
🇯🇵 CờU+1F1EF + U+1F1F5 (2 code point)1 ký tự2 ký tự
👨‍👩‍👧‍👦 Gia đình4 emoji + 3 ZWJ (7 code point)1 ký tự2 ký tự
Tổng cả ba emoji11 code point3 ký tự6 ký tự

Dù phần chữ giống nhau, số ký tự còn lại vẫn khác nhau vì mức tiêu tốn của emoji khác nhau. Giới hạn là 300 ký tự trên Bluesky và 280 ký tự trên X. Vì đếm theo cụm grapheme, Bluesky chỉ tính 1 ký tự cho dù emoji phức tạp đến đâu.

Giới hạn ký tự Bluesky

Phần tửGiới hạn ký tựPhương pháp đếmGhi chú
Bài đăng300 ký tựCụm graphemeCó thêm giới hạn 3.000 byte UTF-8 áp dụng song song
Tên hiển thị64 ký tựCụm graphemeHiển thị trên hồ sơ
Tiểu sử256 ký tựCụm graphemeMô tả hồ sơ
Phản hồi300 ký tựCụm graphemeGiống bài đăng
Handle253 ký tựĐếm ký tựTuân theo hình thức của một tên miền DNS
Tên danh sách64 byteĐếm byte UTF-8Trường duy nhất không có giới hạn cụm grapheme
Mô tả danh sách300 ký tựCụm graphemeVăn bản mô tả danh sách
Văn bản ALT2.000 ký tựCụm graphemeCho khả năng tiếp cận

Có một dòng trong bảng này hoạt động khác các dòng còn lại: tên danh sách bị giới hạn theo số byte UTF-8 chứ không phải theo cụm grapheme. Đây là trường duy nhất hoàn toàn không có giới hạn cụm grapheme. Vì vậy một tên danh sách viết bằng ASCII vừa được khoảng 64 ký tự, còn với chữ viết mà mỗi ký tự chiếm 3 byte trong UTF-8 thì hết chỗ vào khoảng 21 ký tự. Nếu một tên danh sách trông rất ngắn mà vẫn bị từ chối, nguyên nhân thường là số byte.

Nội dung bài đăng có cấu trúc hai tầng. Bên cạnh 300 cụm grapheme, bản ghi còn phải nằm trong 3.000 byte UTF-8. Với văn bản chữ Latin thì giới hạn cụm grapheme luôn là cái chạm tới trước. Ngay cả với chữ viết tốn 3 byte mỗi ký tự, 300 ký tự cũng chỉ vào khoảng 900 byte, nên giới hạn byte không phải là mức mà người viết phải viết sát vào, mà là một chốt an toàn cho những đầu vào bất thường.

Handle được đếm theo ký tự chứ không theo byte, và mức 253 ký tự đến từ hình thức của một tên miền DNS: handle được phân giải như một tên miền, nên nó kế thừa hình thức của tên miền. Văn bản ALT cho phép tối đa 2.000 ký tự, đủ để mô tả chi tiết một hình ảnh mà không biến thành một nội dung bài đăng thứ hai.

Giới hạn 300 ký tự được định nghĩa ở đâu - Ranh giới giữa giao thức và ứng dụng

Mức 300 ký tự không phải là một quy tắc được áp đặt ở đâu đó sâu bên trong mạng. Nó nằm trong schema định nghĩa thế nào là một bản ghi bài đăng: kiểu bài đăng khai báo số cụm grapheme tối đa cho trường văn bản của nó, và giá trị được khai báo đó chính là thứ được kiểm tra khi bài đăng được ghi vào repository. Nói cách khác, giới hạn là dữ liệu nằm trong một định nghĩa được công bố, không phải một hằng số chôn trong mã máy chủ.

Từ góc nhìn trải nghiệm người dùng, giới hạn được thiết kế để chuyển đổi liền mạch từ giới hạn 280 ký tự của X. 20 ký tự bổ sung đáp ứng nhu cầu "ước gì viết thêm được một chút" trong khi duy trì sự ngắn gọn định nghĩa mạng xã hội dạng ngắn.

Vì giá trị này nằm trong schema, có hai điều kéo theo. Mọi thay đổi đối với nó đều hiện ra như một khác biệt trong chính định nghĩa đó, nên đây là thứ có thể theo dõi được thay vì phải phỏng đoán. Và một ứng dụng khác xây trên AT Protocol có thể định nghĩa kiểu bản ghi riêng với mức giới hạn hoàn toàn khác. Giới hạn 300 ký tự là quyết định của ứng dụng Bluesky, không phải ràng buộc mà giao thức áp cho tất cả.

Facets - Xử lý Rich Text của Bluesky và tác động lên số ký tự

Bài đăng Bluesky sử dụng tính năng gọi là "Facets" để xử lý rich text. Facets đính kèm siêu dữ liệu như liên kết, đề cập (@) và hashtag vào văn bản bài đăng, và chúng ảnh hưởng trực tiếp đến việc đếm ký tự.

Bản thân Facets không tiêu tốn ký tự nào: chúng là các dải byte được ghi bên cạnh văn bản, không phải văn bản thêm vào. Thứ tiêu tốn ký tự là đoạn văn bản mà chúng trỏ tới. Một URL viết trong nội dung bài đăng được tính đúng như bạn đã viết: "https://example.com/very-long-path/to/article" là 45 ký tự và tốn đủ 45. Ở đây không có cơ chế nào giống của X, nơi mọi URL đều bị gộp về một mức ký tự cố định bất kể độ dài thực.

Thẻ liên kết (xem trước trang web bên ngoài) lại là chuyện khác, vì URL của thẻ được lưu trong một trường riêng của bản ghi, tách khỏi văn bản bài đăng. Bản sao URL đó vì vậy nằm ngoài 300 ký tự của nội dung. Điều cần lưu ý là đính kèm thẻ không xóa bớt gì trong văn bản của bạn: nếu bạn vẫn để chuỗi URL trong nội dung, lần xuất hiện đó vẫn tốn đủ độ dài của nó.

Đề cập (@username) chỉ tính phần văn bản hiển thị. Ví dụ, "@alice.bsky.social" tiêu tốn 18 ký tự. Đề cập người dùng có handle dài có thể ăn vào ngân sách ký tự đáng kể.

5 mẹo cho bài đăng 300 ký tự hiệu quả

  1. Dẫn đầu bằng kết luận. Ở mức 300 ký tự, bài đăng ngắn đến mức gần như toàn bộ đều hiện ra trên timeline, nên thứ thực sự quyết định người ta có đọc tiếp hay không là một hai dòng đầu. Hãy đặt trọng tâm ở đó thay vì dẫn dắt dần.
  2. Cắt bỏ từ bổ nghĩa không cần thiết. Loại bỏ các từ như "rất," "thực sự," và "cơ bản" tiết kiệm 5 đến 10 ký tự mỗi từ. Trong các cụm từ dài hơn, thay thế cách diễn đạt dài dòng bằng cách nói ngắn gọn hơn giúp tiết kiệm nhiều ký tự.
  3. Sử dụng ngắt dòng để dễ đọc. Vì xem trên di động chiếm ưu thế, thêm dòng trống mỗi 3 đến 4 dòng cải thiện khả năng quét nhanh. Lưu ý rằng mỗi ngắt dòng tính là 1 ký tự, nên đừng lạm dụng.
  4. Để thẻ liên kết mang URL. Vì URL của thẻ nằm trong một trường riêng, tách khỏi văn bản bài đăng, việc không để chuỗi URL dài trong nội dung sẽ giải phóng chỗ đó cho phần tóm tắt. Hãy đính kèm thẻ, rồi viết nội dung như thể liên kết đã có ở đó.
  5. Kiểm tra số ký tự với Bộ đếm ký tự trước khi đăng. Đếm cụm grapheme khó tính toán thủ công, nên kiểm tra bằng công cụ cho bạn sự tự tin.

Lỗi đăng bài phổ biến và cách tránh

Đây là những cạm bẫy người dùng Bluesky thường gặp, cùng nguyên nhân và giải pháp.

Mẹo chuyên nghiệp

So sánh với các nền tảng khác - Lưu ý sự khác biệt cách đếm

Nền tảngGiới hạn ký tựPhương pháp đếmXử lý URL
Bluesky300 ký tựCụm graphemeKhông rút gọn; URL trong nội dung tốn đủ độ dài
X (Twitter)280 (Premium: 25.000)Code point chuẩn hóa NFCURL: cố định 23 ký tự (rút gọn t.co)
Threads500 ký tựCode point UnicodeURL tính vào giới hạn
Mastodon500 ký tự (thay đổi theo máy chủ)Phụ thuộc triển khai máy chủURL: cố định 23 ký tự

So sánh đơn giản về số ký tự cho thấy 300 của Bluesky chỉ nhiều hơn 20 so với 280 của X, nhưng hai nền tảng thu phí cho những thứ khác nhau. Đếm theo cụm grapheme có lợi cho Bluesky mỗi khi bài đăng đầy emoji hoặc ký tự kết hợp. Cách xử lý URL thì đi theo hướng ngược lại: X gộp mọi liên kết về mức cố định 23 ký tự, còn Bluesky tính đủ độ dài của những gì bạn đã gõ. Vì vậy nền tảng nào để lại cho bạn nhiều chỗ hơn phụ thuộc vào chính nội dung của bài đăng. Xem so sánh giới hạn ký tự mạng xã hội để biết thêm chi tiết.

Kết luận

Giới hạn 300 ký tự của Bluesky cân bằng kiến trúc phi tập trung của AT Protocol với tính khả dụng của mạng xã hội dạng ngắn. Bằng cách hiểu các tính năng kỹ thuật - đếm cụm grapheme, tính một ký tự cho dù emoji phức tạp đến đâu bên trong; URL, được tính đúng bằng độ dài bạn viết ra vì không có gì rút gọn chúng; và một mức trần nằm trong một định nghĩa schema được công bố thay vì trong mã máy chủ ẩn - bạn có thể tối đa hóa giá trị của mỗi ký tự. Kết hợp những điều này với các tính năng đặc trưng của Bluesky như feed tùy chỉnh và handle tên miền để tạo bài đăng ngắn gọn, hấp dẫn. Kiểm tra số ký tự với Bộ đếm ký tự trước khi đăng để tránh vượt quá giới hạn.

Chia sẻ bài viết này