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