是否可以再次将emoji 3或4字节字符串重新编码为emoji?
我继承了一个带有utf8_unicode_ci编码的mysql innodb表。这些表情符号4字节字符串无处不在。有可能把它们翻译成表情符号吗?
第一步是将character set
修改为utf8mb4
。这将所有字符串(如ð��£
)更改为以下字符串:😊
。
但我真正想要的是把😊
翻译成类似的东西。(我不知道😊
是否真的是个笑脸)
最佳答案
灵感来自Ignacio Vazquez-Abrams' comment。下一个python代码片段显示了从Emoji到Mojibake的原始过程,反之亦然(修复):
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