shell 输出中的奇怪字符

shell 输出中的奇怪字符

过去几年,有些 Linux 系统在运行各种命令时会输出奇怪的字符。下面是我sensors在其中一台机器上执行命令时的输出示例:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +45.5°C  (crit = +126.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +44.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:       +45.0°C  (high = +100.0°C, crit = +100.0°C)

nouveau-pci-0100
Adapter: PCI adapter
temp1:        -62.0°C  (high = +95.0°C, crit = +99.0°C)

注意Â到处都是字符。为什么这种情况在某些环境中会发生,而在其他环境中不会发生?我该怎么做才能纠正这个问题?

答案1

要么使用能够理解 UTF-8 的终端程序,要么通过 告诉你的 shell 不要使用 UTF-8 $LANG

>>> print u'°'.encode('utf-8').decode('latin-1')
°

答案2

您应该将您的语言环境设置为 C:

export LC_ALL=C

相关内容