我正试图将此表单text = "\ud83d\ude04\n\u3082\u3042"
中的一些带有表情符号的文本打印到:
# my expecting output
# a new line after the emoji, then is Japanese character
>>>😄
もあ
我读过一个关于这个的问题,但只是解决了部分问题:
从文本文件编码表情包(Python(的最佳干净方法
我遵循了帖子中提到的代码,得到了以下结果:
emoji_text = "\ud83d\ude04\n\u3082\u3042".encode("latin_1")
output = (emoji_text
.decode("raw_unicode_escape")
.encode('utf-16', 'surrogatepass')
.decode('utf-16')
)
print(output)
>>>😄nもあ
# it prints n instead of a new line
因此,我想问,在转换表情符号和文本时,如何转换转义序列\n、\t、\b等?
使用unicode_escape
而不是raw_unicode_escape
也将解码n
。尽管如果你最初使用raw_unicode_escape
是有原因的,也许这不合适?
你选择编码成"latin-1"
有点奇怪,但也许这也是有原因的。也许你应该编码成"ascii"
,并做好应对任何可能的后果的准备。