我有一个控制台应用程序显示特殊符号,例如
☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵
无论在哪里 - putty(UTF8+使用 Unicode 线条画,但我猜这不是客户端问题)、本地控制台、SecureCRT - 我都看不到它们。而只是方块。这是我的 shell 环境变量
LANG=en_US.UTF-8
TERM=xterm
知道如何让终端正确显示这些符号吗?
更新
我感兴趣的字形
python -c 'print u"\u22c5 \u22c5\u22c5 \u201d \u2019 \u266f \u2622 \u260d \u2318 \u2730 " \
u"\u28ff \u26a1 \u262f \u2691 \u21ba \u2934 \u2935 \u2206 \u231a \u2240\u2207 \u2707 " \
u"\u26a0\xa0\u25d4 \u26a1\xa0\u21af \xbf \u2a02 \u2716 \u21e3 \u21e1 \u2801 \u2809 " \
u"\u280b \u281b \u281f \u283f \u287f \u28ff \u2639 \u2780 \u2781 \u2782 \u2783 \u2784 " \
u"\u2785 \u2786 \u2787 \u2788 \u2789 \u25b9\xa0\u254d \u25aa \u26af \u2692 \u25cc " \
u"\u21c5 \u21a1 \u219f \u229b \u267a ".encode("utf8")'
带有 Ubuntu 字体的屏幕截图
使用 DejaVu 字体的屏幕截图
答案1
我只是从您的示例中复制了字符并在终端窗口中回显它们:
我猜 TTY 没有那么多字符支持,所以这可能是字体问题。
答案2
我支持@lgarzo。你可以尝试一些大字体,特别是东方字体:
$ aptitude install ttf-wqy-microhei
答案3
... putty(UTF8+使用Unicode ...
与使用十六进制转义序列相比,使用实际字符来测试常驻字体可能更容易(如果缺少一个字符,这将是一个矛盾的说法,因为不可能选择它! - 这意味着源机器必须创建一个包含所需符号的文件,然后用目标机器显示该文件)。
还可以使用 unicode 的字符/UTF 配对,通过提取 UTF-8 或 UTF-16 来进行程序字形生成:
python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚"'
⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚
python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")'
â Ⱐ⣿ ⡠⯠â ⺠⤴ ⤵ â â
python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")
.encode("unicode_escape")'
\xe2\x8c\x98 \xe2\x9c\xb0 \xe2\xa3\xbf \xe2\x9a\xa1 \xe2\x98\xaf \xe2\x9a\x91
\xe2\x86\xba \xe2\xa4\xb4 \xe2\xa4\xb5 \xe2\x88\x86 \xe2\x8c\x9a
python -c 'print "⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚".decode("unicode_escape")
.encode("unicode_escape")
.decode("string_escape")'
⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚
python
Python 2.7.3 (default, Apr 20 2012, 22:44:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> u"⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵ ∆ ⌚"
u'\u2318 \u2730 \u28ff \u26a1 \u262f \u2691 \u21ba \u2934 \u2935 \u2206 \u231a'
Unicode 字形可以使用 UTF-8 或 UTF-16 呈现,
因此Unicode U+2318
或UTF-16: 0x2318
或⌘
UTF-8: 0xE2 0x8C 0x98
通过在 中逐字搜索,可以找到字符的字体详细信息character map
。它作为图标实用程序运行,或使用gnome-character-map
或gucharmap
终端命令激活。按住鼠标右键,在字符上找到驻留字体。此外,在菜单Show only glyphs in this font
中使用View
,然后使用箭头键滚动字体列表,可以快速找到该字符的字体以及其他驻留字符。
哎呀,
下面的先前答案重申了显而易见的事实 - 正在查看答案而不是问题
ubuntu@ubuntu:~$ echo '☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵'
☢ ☍ ⌘ ✰ ⣿ ⚡ ☯ ⚑ ↺ ⤴ ⤵
和
python -c 'print u"\xbf \n FreeSerif\n" \
u"\u2019 \u201d \u219f \u21a1 \u21af \u21ba \u21c5 \u21e1 \u21e3 \n" \
u"\u2206 \u2207 \u2240 \u229b \u22c5 \u22c5\u22c5 \u2318 \u231a \n" \
u"\u25aa \u25b9 \u25cc \u25d4 \n" \
u"\u260d \u2622 \u262f \u2639 \u266f \u267a \u2691 \u2692 \u26a0 \u26a1 \u26af \n" \
u"\u2780 \u2781 \u2782 \u2783 \u2784 \u2785 \u2786 \u2787 \u2788 \u2789 \n" \
u"\u2707 \u2716 \u2730 \u2a02 \n DejaVu\n" \
u"\u2801 \u2809 \u280b \u281b \u281f \u283f \u287f \u28ff \n" \
u"\u2934 \u2935 \u254d \n".encode("utf8")'
印刷
¿
FreeSerif
’ ” ↟ ↡ ↯ ↺ ⇅ ⇡ ⇣
∆ ∇ ≀ ⊛ ⋅ ⋅⋅ ⌘ ⌚
▪ ▹ ◌ ◔
☍ ☢ ☯ ☹ ♯ ♺ ⚑ ⚒ ⚠ ⚡ ⚯
✇ ✖ ✰ ⨂
➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉
DejaVu
⠁ ⠉ ⠋ ⠛ ⠟ ⠿ ⡿ ⣿
⤴ ⤵ ╍
使用gnome-terminal
ubuntu@ubuntu:~$ echo \$TERM = $TERM \ \$LANG = $LANG
$TERM = xterm $LANG = en_US.UTF-8
和
ubuntu@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
ubuntu@ubuntu:~$
注意:EOT 和 ENQ 符号是错误的
参考:
如何纠正 unicode 符号 u+2404 ␄ EOT 和 u+2405 ␅ ENQ?
python -c 'print u"This is ^D EOT (NB!! no ;) \u2404 and ENQ ^E \u2405 ".encode("utf8")'
This is ^D EOT (NB!! no ;) ␄ and ENQ ^E ␅