微網誌

微網誌

簡單

說明

你發現社群媒體市場在極短貼文這塊有個缺口。 既然 Twitter 現在允許 280 個字元的貼文,那些想要快速更新社群動態的人反而沒被服務到。 你決定打造自己的社群媒體網路。

為了讓你的產品與眾不同,你把它做到極端:只允許 5 個字元以內的貼文。 任何超過 5 個字元的貼文都應該截斷成 5 個字元。

為了讓使用者能充分表達自己,你允許 Emoji 和其他 Unicode 字元。

你的任務是把輸入字串截斷成 5 個字元。

文字編碼

以數位形式儲存的文字必須轉換成一連串的位元組。 目前常見的字元對應到位元組的方式有 3 種。

  • ASCII可以編碼英文的字元。 所有字元都恰好佔 1 位元組。
  • UTF-8是一種 Unicode 文字編碼。 字元佔 1 到 4 位元組。
  • UTF-16是一種 Unicode 文字編碼。 字元長度不是 2 位元組就是 4 位元組。

UTF-8 和 UTF-16 都是 Unicode 編碼,這表示它們能夠表示非常多種字元,包括:

  • 世界上大多數語言與文字系統的文字
  • 歷史文本
  • Emoji

UTF-8 和 UTF-16 都是可變長度編碼,這表示不同的字元佔用的空間大小也不同。

來看看字母「a」和 Emoji「😛」。 在 UTF-16 中,字母佔 2 位元組,但這個 Emoji 佔 4 位元組。

這道練習的訣竅,在於使用以 Unicode 字元(碼點)為核心設計的 API,而不是以 Unicode 碼元為核心的 API。

Unicode 支援

raku 自 2025-12 版發布起支援 Unicode 171。

  1. https://github.com/rakudo/rakudo/releases/tag/2025.12 ↩

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Raku Exercism

準備好開始 微網誌 了嗎?

註冊 Exercism,透過 94 個練習 和真人引導來學習並精通 Raku,全部免費。