🐛 修复 emoji 转化后不正常显示的 BUG

This commit is contained in:
李寻欢 2021-05-10 23:39:34 +08:00 committed by GitHub
parent 601b6e4600
commit fa8dddd315
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -284,19 +284,25 @@ var Emoji = struct {
} }
func FormatEmoji(text string) string { func FormatEmoji(text string) string {
if result := emojiRegexp.FindAllStringSubmatch(text, -1); len(result) != 0 { result := emojiRegexp.FindAllStringSubmatch(text, -1)
for _, item := range result { if len(result) == 0 {
value := item[0] return text
var builder strings.Builder }
builder.WriteString(`\U`)
times := 10 - len(item[1]) - 2 for _, item := range result {
for i := 0; i < times; i++ { if len(item) != 2 {
builder.WriteString("0") continue
} }
u := strings.ToUpper(item[1]) value := item[0]
builder.WriteString(u) emojiCodeStr := item[1]
text = strings.ReplaceAll(text, value, builder.String()) emojiCode, err := strconv.ParseInt(emojiCodeStr, 16, 64)
} if err != nil {
} continue
}
emojiStr := html.UnescapeString("&#" + strconv.FormatInt(emojiCode, 10) + ";")
text = strings.Replace(text, value, emojiStr, -1)
}
return text return text
} }