在我的 Mac 终端上,打印 UTF-8 通常可以正常工作,但无法less
正常工作。
因此这可以正常工作:
$ echo -e '\xe2\x82\xac'
€
但将其导入 less 会产生如下结果:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
如何修复此问题?
对于诊断:
我正在使用 Mac OS 10.6.8.较低版本 418,终端 2.1.2 (273.1)。
我的语言环境的输出是这样的:
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
答案1
好的,经过一番谷歌搜索后,我找到了答案。显然,LESSCHARSET
需要像这样设置:
export LESSCHARSET=utf-8
现在less
对我来说工作正常。
答案2
如果您可以在 中看到一些 unicode 字符less
,但无法less
显示表情符号,请尝试升级less
到较新的版本。在 Mac OS X 上,我从版本 458 升级到 481,这解决了我的问题(例如,git log
现在可以在提交消息中显示表情符号)。
如果你有自制软件,你可以通过运行将系统替换为较新版本brew install homebrew/dupes/less
。
答案3
适合我
LANG=
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
答案4
只需更新你[less][1]
用 brew 来做。
brew install homebrew/core/less