🐛 修复 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)
if len(result) == 0 {
return text
}
for _, item := range result { for _, item := range result {
if len(item) != 2 {
continue
}
value := item[0] value := item[0]
var builder strings.Builder emojiCodeStr := item[1]
builder.WriteString(`\U`) emojiCode, err := strconv.ParseInt(emojiCodeStr, 16, 64)
times := 10 - len(item[1]) - 2 if err != nil {
for i := 0; i < times; i++ { continue
builder.WriteString("0")
}
u := strings.ToUpper(item[1])
builder.WriteString(u)
text = strings.ReplaceAll(text, value, builder.String())
} }
emojiStr := html.UnescapeString("&#" + strconv.FormatInt(emojiCode, 10) + ";")
text = strings.Replace(text, value, emojiStr, -1)
} }
return text return text
} }