透過 Golang 輸出所有的 Emoji
前後端工程師,善用 JavaScript、HTML 5、CSS 3 和 Golang 與 PHP、Node.js 、C#。目前正為台灣的社群網站進行趕工,然而這東西卻趕了很久。

之前在做網站的時候要實作一個表情列表的功能,後來到了 StackOverflow 上面詢問如何透過簡單的方式輸出所有的 Emoji(原文:Is it possible to generate all the emojis and append to the select dropdown?),畢竟總不可能自己把每個都複製下來然後塞進列表裡吧,不過那篇文章是 JavaScript 的實作方式,這裡要講解的是如何使用 Golang 來達到相同效果。

按下這裡檢視線上 Demo

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 全部輸出。

成果會像下面這樣輸出一堆表情。