#分享 在程式裡算 Emoji 字數的那些問題
你是否曾經在寫程式時,碰到計算 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: