我有一种感觉,这已经在某处得到了解答:如果是这样,我道歉。
我正在尝试使用将Unicode字符写入标准输出的可执行文件。我得到的只是这个错误信息(来自Haskell的hPutChar):
<stderr>: hPutChar: invalid argument (invalid character)
只是要明确:可执行文件不是我的,我不能改变输出的内容。
有没有办法让bash显示这些字符?我的bash版本是Debian Jessie的4.3.30。
非常感谢。
答案 0 :(得分:3)
您的用户环境未正确设置以处理Unicode。您的语言环境应设置为<language>_<territory>.utf-8
或其某些拼写变体(某些系统使用UTF8或utf8)。键入locale -a
以查看支持的区域设置列表。型
export LANG=<your preferred locale name>
再次运行你的程序。该计划应该停止抱怨。如果您没有看到正确的字符,并且您正在运行X11,请在同一会话中键入xterm&
(或您喜欢的任何终端模拟器),然后重试。
如果没有合适的区域设置,您可能需要生成一些区域设置。 This似乎解释了如何在Debian上做到这一点。