我使用的是Ubuntu。我的控制台(使用Python或bash)不打印4字节的utf8字符,只有3字节或更少。
示例(bash):
eran@eran-MS-7788:~/Dropbox/help$ echo -e "xeex8cxb0"
# This prints the v sign
eran@eran-MS-7788:~/Dropbox/help$ echo -e "xf0x9fx8fx80"
# This should print the basketball sign but does not print so
我从Python控制台得到了同样的结果。
有什么办法解决这个问题吗?
大多数所谓的Unicode字体只实现Unicode BMP(基本多语言平面)中存在的字符-从U+0000
到U+FFFF
,所有这些都可以使用UTF-8
仅使用3个字节来表示。
很少有字体可以实现BMP之外的字符:即从U+010000
到U+1FFFFF
(在UTF-8
中使用4个字节进行编码),我认为您的Linux控制台或终端也不例外。正因为如此,你们不太可能看到你们所期待的角色。随着时间的推移,对BMP以外的字符的支持可能会变得更好,但这可能需要很长时间。你可以在这里阅读更多关于这方面的信息。