之前在做網站的時候要實作一個表情列表的功能,後來到了 StackOverflow 上面詢問如何透過簡單的方式輸出所有的 Emoji(原文:Is it possible to generate all the emojis and append to the select dropdown?),畢竟總不可能自己把每個都複製下來然後塞進列表裡吧,不過那篇文章是 JavaScript 的實作方式,這裡要講解的是如何使用 Golang 來達到相同效果。
package main
import (
"fmt"
"html"
"strconv"
)
func main() {
// 相關範圍可以參考這裡://apps.timwhitlock.info/emoji/tables/unicode
emoji := [][]int{
// 表情圖示的範圍。
{128513, 128591},
// 裝飾符號的範圍。
{9986, 10160},
// 交通工具還有地圖的範圍。
{128640, 128704},
}
for _, value := range emoji {
for x := value[0]; x < value[1]; x++ {
// 將範圍轉成 Unicode 字串後反脫逸字元,這樣就會出現表情了。
str := html.UnescapeString("&#" + strconv.Itoa(x) + ";")
// 輸出表情。
fmt.Println(str)
}
}
}
在 Unicode 裡面 Emoji 是有一定範圍的,意思是這個範圍的都是 Emoji,而且是特定種類,透過這個「範圍」的特徵,我們可以將這個範圍內的 Unicode 全部輸出。
成果會像下面這樣輸出一堆表情。
