我正在尝试通过串行设备将 utf-8 符号发送到浏览器并显示它们。我发现当我打印facepalm emoji \xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f(在Windows 10 Win+上.)时它后面有U+200D和\xe2\x99\x80字符。其他表情符号没有这个功能。我正在使用查看不可打印的 unicode 字符工具。我还发现,如果您在记事本中打印它,它会显示您\xe2\x99\x80,当您在浏览器地址栏中打印它时,它\xe2\x99\x80是不可见的,但如果您按退格键,则会将其删除。最后,如果您在某些 html 文本输入中打印它,则可以使用单个退格键删除整个表情符号。这是为什么?
表情符号序列有多个代码点来表示变化(根据浏览器的不同,每个序列的下面可能看起来不同,也可能没有不同):
\n PERSON FACEPALMING U+1F926\n\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f MAN FACEPALMING U+1F926 U+200D U+2642 U+FE0F\n\xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f WOMAN FACEPALMING U+1F926 U+200D U+2640 U+FE0F\nRun Code Online (Sandbox Code Playgroud)\n参考:
\n某些编辑器/浏览器比其他编辑器/浏览器更好地处理序列,并且可能不会显示所有变体的差异,或者可能无法识别最新的 Unicode 规范和较新的表情符号。
\n