#分享 在程式裡算 Emoji 字數的那些問題

6月20日 19:22
你是否曾經在寫程式時,碰到計算 emoji 或其他語言的字數時感到困擾呢? 如果你問說在 Java/Kotlin/JavaScript 等語言如何取得字串的字數,最常見的做法可能是String.length。 中英文常見的情境下沒什麼問題: "Hello".length // 5 "你好".length // 2 不過一旦碰到 emoji 或是部分其他語言,就會發現,事情沒那麼簡單了…… "💩".length // 2 "한".length // 3 "🇯🇵".length // 4 "💁‍♀️".length // 5 "️🤦🏻‍♂️".length // 7 "👨‍👧‍👦".length // 8 "👨‍👩‍👧‍👦".length // 11 "🏴󠁧󠁢󠁥󠁮󠁧󠁿".length // 14 "👨🏿‍👩🏿‍👧🏿‍👦🏿".length // 19(可能顯示不正確,請參考下圖。)
甚至可能發生這樣看似很詭異的情況: println("한".codePoints().count()) // 1 println("한".codePoints().count()) // 3 如果你好奇文字背後 Unicode 編碼的原理,以及什麼是 Grapheme Clusters 的話,我寫了一篇 Medium 文章來探討,歡迎來看看。
—————————— 如果你喜歡這篇文章,請點一下愛心及追蹤按鈕! 追蹤我的 Instagram:
65
回應 6
文章資訊
154 篇文章3724 人追蹤
Logo
每週有 30 則貼文
共 6 則留言
長庚大學
改用 Swift 就沒有這個問題~
默塞德學院
B1 Apple之外沒人用
國立交通大學 資訊工程學系
好酷 xDDDD
hiking 的文也有人要檢舉www
舊金山城市學院
用Swift 解決