跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求教 Python 如何将字符串转化为 emoji?
未分類
2020 年 12 月 7 日

求教 Python 如何将字符串转化为 emoji?

求教 Python 如何将字符串转化为 emoji?

資深大佬 : smartwusir007 2

我通过微信的三方登录获得到了用户名,但用户名里有 emoji 表情符号的话有时显示为表情(如:

大佬有話說 (18)

  • 資深大佬 : Pagliacii

    <a href=”https://sm.ms/image/zRYlBMmPQ47dxN8″ target=”_blank”><img src=”https://i.loli.net/2020/11/30/zRYlBMmPQ47dxN8.png” ></a>

    这个主要看你的终端支不支持显示 Unicode 符号吧,还有你终端使用的字体

  • 主 資深大佬 : smartwusir007

    @Pagliacii 为啥在你那打印出来是两朵云?在微信上是个烟花的形状:

  • 資深大佬 : beichenhpy

    终端字体不支持 unicode 吧,可以换一种字体如 MesloLGS NF

  • 主 資深大佬 : smartwusir007

    @beichenhpy 不是的,我把 ue312 打印出来的白框复制到微信,显示的是

  • 資深大佬 : Pagliacii

    @smartwusir007 #2 两朵云是因为字体。如果你用 Windows 的话,可以用 `charmap` 看看具体字体是如何表示 Unicode 码点为 `U+e312` 的符号的。![image.png]( https://i.loli.net/2020/11/30/mTJDaPKLNzY9Cwj.png)

    另外,你可以试试 `N` 来打印 Emoji 符号,不过你得找一下这个符号 `

  • 資深大佬 : Pagliacii

    ![image.png]( https://i.loli.net/2020/11/30/L5FCsx3MtV96gGv.png)

  • 資深大佬 : Pagliacii

    @smartwusir007 #4 另外,`ue312` 并不是 `

  • 主 資深大佬 : smartwusir007

    @Pagliacii 好,我找一下看看

  • 資深大佬 : imn1

    你要搞清楚是 ‘uxxxx’,还是 “‘uxxxx'”

    前者是直接可以用的,打印空框是因为你没有装支持的字体
    后者 json.loads(s)

  • 主 資深大佬 : smartwusir007

    @imn1
    “`python
    >>> json.loads(‘”ue312″‘)
    ‘ue312’
    >>> json.loads(“‘ue312′”)
    Traceback (most recent call last):
    File “<stdin>”, line 1, in <module>
    File “/usr/local/python3.7.6/lib/python3.7/json/__init__.py”, line 348, in loads
    return _default_decoder.decode(s)
    File “/usr/local/python3.7.6/lib/python3.7/json/decoder.py”, line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/usr/local/python3.7.6/lib/python3.7/json/decoder.py”, line 355, in raw_decode
    raise JSONDecodeError(“Expecting value”, s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    >>> json.loads(‘”ue312″‘)
    ‘ue312’
    >>> json.loads(‘”ud83dude00″‘)
    ‘

  • 主 資深大佬 : smartwusir007

    @Pagliacii 可是明明是个 emoji 表情 N{Party Popper},为什么安卓前端会给我返回个 ue312 呢?其实大部分用户名的 emoji 表情返回的都是对的,只有少部分字符有问题。我感觉有必要自己维护个 map,将用户名里面的不能正常转化的 emoji 表情字符 replace 一下, 比如:replace(‘ue312’, ‘N{Party Popper}’)。ue312 和 N{Party Popper} 之间有什么必然的联系吗,有没有通过计算就能算出来的方法?

  • 資深大佬 : Pagliacii

    @smartwusir007 #11 可能是字符串截取的长度不对之类吧,不确定。另外,如果你要换算的话,你得确定字符编码

  • 資深大佬 : Pagliacii

    @smartwusir007 #11 看这个笑脸 ‘

  • 資深大佬 : Pagliacii

    https://onlineunicodetools.com/convert-unicode-to-utf16

  • 主 資深大佬 : smartwusir007

    @Pagliacii #12 我查了查,转化挺麻烦,ue312 应该是 SoftBank 格式的,而能正常显示的 ‘U0001f389’ 是 Unified 格式的,[微信文档]( https://developers.weixin.qq.com/community/develop/article/doc/000c84d49d4058d35e99bbaef5b013), 得好好看看了。非常感谢你了

  • 資深大佬 : Pagliacii

    求教 Python 如何将字符串转化为 emoji? 不用谢

  • 資深大佬 : lxilu

    https://www.unicode.org/Public/UCD/latest/ucd/EmojiSources.txt
    还是用“软银编码”称呼吧,版本、格式实在指代不明。
    那篇文章关于 Unicode 有很多不对,不要从那获取 Unicode 知识。

  • 主 資深大佬 : smartwusir007

    @lxilu 果然这里的 unicode 对应的 emoji 表情比那边全了很多,但我想要 软银编码 与 emoji 表情的映射,这里好像没有啊。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具