是否可以再次将emoji 3或4字节字符串重新编码为emoji?
我继承了一个带有utf8_unicode_ci编码的mysql innodb表。这些表情符号4字节字符串无处不在。有可能把它们翻译成表情符号吗?
第一步是将character set修改为utf8mb4。这将所有字符串(如ð��£)更改为以下字符串:😊
但我真正想要的是把😊翻译成类似的东西。(我不知道😊是否真的是个笑脸)

最佳答案

灵感来自Ignacio Vazquez-Abrams' comment。下一个python代码片段显示了从EmojiMojibake的原始过程,反之亦然(修复):

print ( "\nEmoji to mojibake (origin):")
for emojiChar in ['😊','😣','👽','😎']:
    print ( emojiChar, emojiChar.encode('utf8').decode('cp1252'))

print ( "\nmojibake to Emoji (repair):")
for mojibakeString in ['😊','😣','👽','😎','🙇']:
    print ( mojibakeString, mojibakeString.encode('cp1252').decode('utf8'))

我知道这个问题被标记为php而不是python;让我希望类似的php解决方案可以非常接近……
输出:
==> chcp 65001
Active code page: 65001

==> D:\test\Python\20108312.py

Emoji to mojibake (origin):
😊 😊
😣 😣
👽 👽
😎 😎

mojibake to Emoji (repair):
😊 😊
😣 😣
👽 👽
😎 😎
🙇 🙇

==>

Python版本:
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32

07-24 15:49