关于Emoji在Ansi编码上的问题

版权声明:本文为博主原创文章,转载请注明出处。

前言

近期开发微信项目,其中消息转发部分遇到了个问题。

当被转发的消息包含emoji表情时,在utf8转unicode的过程中因为编码不支持emoji字符,导致emoji表情变成了乱码(?)。

折腾半天,emoji是没办法转ansi了,但是可以通过字典的方式转成其他可解析字符来实现无损转换。

解决方案

遍历emoji码表进行替换成可解析字符,如“🌞”替换成“:sun:”。

字典可以从以下project获取。

以下是emoji在各语言中转码的project:

点击查看

由于我用的是某不起眼语言,所以我通过python生成一个字典用于转码。

1
Ojo-Laptop:~ hsojo$ pip3 install emoji
1
2
3
4
5
6
7
8
9
10
11
from emoji.unicode_codes import EMOJI_ALIAS_UNICODE

content = ''
for k,v in EMOJI_ALIAS_UNICODE.items():
if content != '':
content += '\n'

content += '%s|%s' % (k, v)

with open('emoji.txt', 'w') as io:
io.write(content)

这样只要用其他语言加载好字典,然后进行替换即可。

# python

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×