use*_*474 37 terminal mac-osx utf-8 unicode
在我的 Mac 终端上,打印 UTF-8 可以正常工作,但less不能正常工作。
所以这可以正常工作:
$ echo -e '\xe2\x82\xac'
€
Run Code Online (Sandbox Code Playgroud)
但是将其管道化为 less 给出了这样的东西:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
对于诊断:
我使用的是 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"
Run Code Online (Sandbox Code Playgroud)
use*_*474 50
好的,我在谷歌搜索后找到了答案。显然,LESSCHARSET需要这样设置:
export LESSCHARSET=utf-8
Run Code Online (Sandbox Code Playgroud)
现在less对我来说很好用。
小智 6
如果您可以在 中看到一些 unicode 字符less,但无法less显示表情符号,请尝试升级less到更新的版本。在 Mac OS X 上,我从 458 版升级到 481 版,这解决了我的问题(例如,git log现在可以在提交消息中显示表情符号)。
如果你有自制软件,你可以通过运行brew install homebrew/dupes/less.
小智 2
为我工作
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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18419 次 |
| 最近记录: |