如何将两个字母的国家代码映射到表情符号?

How to map two-letter country codes to Emoji?

有人摆弄过 https://en.wikipedia.org/wiki/Regional_Indicator_Symbol 吗?我想知道如何将美国印成国旗

package main

import (
    "html/template"
    "os"
)

func main() {

    t, err := template.New("").Parse(`
    <p>{{ .Country }}</p>
    <p>Want </p>
    `)

    if err != nil {
        panic(err)
    }

    err = t.Execute(os.Stdout, map[string]interface{}{
        "Country": "US",
    })

    if err != nil {
        panic(err)
    }

}

https://play.golang.org/p/UErXxL645rV

IIUC 我需要将 0x1F1A5 添加到大写拉丁字母,但我不知道如何在 Go 中执行此操作。

更新:Eric Hill 建议:https://play.golang.org/p/hEsScaZSh1I .. 任何人都可以提出改进意见吗?

我建议的唯一改进是添加输入字符是一对 ASCII 大写字母的验证。这是模板函数的示例:

func(x string) (string, error) {
    if len(x) != 2 {
        return "", errors.New("country code must be two letters")
    }
    if x[0] < 'A' || x[0] > 'Z' || x[1] < 'A' || x[1] > 'Z' {
        return "", errors.New("invalid country code")
    }
    return string(''+rune(x[0])-'A') + string(''+rune(x[1])-'A'), nil
}

https://play.golang.org/p/Nkg23qsr2Ga

您可以使用 enescakir/emoji 包。它使表情符号在 Golang 中的使用更加容易。

它可以从 ISO 3166 Alpha2 代码生成国旗表情符号。

emoji.CountryFlag("us") // 
emoji.CountryFlag("gb") //