我有一种感觉,我有这个漏洞,但我刚刚从源安装了新的 Nano 4.7
当我打开文件时,很多符号(甚至非unicode)都无法正常显示,而是显示为空格。当我将光标移到它们上面时,它们就会出现(通常如此)。
演示 ( nano /etc/environment
):
# nano --version
GNU nano, version 4.7
(C) 1999-2011, 2013-2019 Free Software Foundation, Inc.
(C) 2014-2019 the contributors to nano
Email: [email protected] Web: https://nano-editor.org/
Compiled options: --disable-libmagic --enable-utf8
# locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
我的操作系统是 CentOS 8。我从 PuttY 和 SSH 连接中看到了这一点,但由于它是一个远程服务器,所以我无法检查它的物理外观。
vi
并cat
在同一终端/shell 中正常工作。
我做了什么以及可能导致问题的原因:
- 默认语言环境是
POSIX
,我将其更新为en_US.UTF-8
(也许我做错了?)。原因是 和都POSIX
无法正确显示文件中的 unicode 符号。nano
vi
- 开箱即用的 Nano 2.9.8 开始出现问题,所以
Error in /usr/share/nano/rust.nanorc on line 11: Bad regex
我决定尝试新版 Nano
我该如何修复我的 Nano 以正确显示文件?
答案1
好像我通过将语言环境设置为 而不是en_US.UTF-8
来解决这个问题ru_RU.UTF-8
。
所以现在我的/etc/environment
是这样的:
LANG=en_US.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
(我仍然想要英文的信息和用户界面)
我认为,造成这种情况的原因是该服务器最初配置的是俄语布局和语言,也许一些系统文件获得了ru_RU.UTF-8
编码/语言环境/其他任何内容...无论如何,现在一切似乎都很好。