# .tmux.conf
set -g status-utf8 on
setw -g utf8 on
然而,当我在终端窗口中输入斯堪的纳维亚字符æ
、ø
和å
时,我得到以下输出:
<00c3><00a6><00c3><00b8><00c3><00a5>
我使用 Iterm2
作为我的终端,字符在 tmux 外部正确打印。
你在用 zsh 吗?我能够通过将LC_CTYPE设置为 en_US.US-ASCII
来让它产生这样的结果(在 tmux 内部和外部(,同时实际发送 UTF-8(即向 zsh(和其他对语言环境敏感的程序(撒谎关于预期的字符集(。
检查 tmux 会话中是否有适当的值LC_ALL、LC_CTYPE 和/或 LANG ;您可能希望使用以 .UTF-8
结尾的一致值。可以使用locale
查看活动值,locale -a
列出可用值。
您可能还需要重置 tmux 全局和/或会话环境中的错误变量(以便新会话/窗口/窗格不会继续获取错误值(。您可以使用以下命令检查 tmux 全局环境
tmux show-environment -g | grep -E 'LC|LANG'
使用 (例如( tmux set-environment -g LANG "$your_value"
调整其值。
每个会话还可以覆盖环境变量(对于在该会话中创建的新窗口和窗格(。您可以使用以下命令检查会话的环境
tmux show-environment -t "$session_name" | grep -E 'LC|LANG'
您可以使用(例如(tmux set-environment -t "$session_name" -u LANG
取消设置会话环境值(以便全局值将用于新窗口/窗格(,或使用tmux set-environment -t "$session_name" LANG "$your_value"
调整会话值。
或者,如果您没有任何重要的会话,则可以使用一组已知良好的语言环境变量值重新启动 tmux 服务器。