在 Mac OS X Catalina 上的 iTerm 中使用 psql 时避免出现“无效字节序列”错误

在 Mac OS X Catalina 上的 iTerm 中使用 psql 时避免出现“无效字节序列”错误

我已经使用 MacBook Pro 几个月了,一切都很顺利,除了一件事让我抓狂:有时当我在 psql 中输入命令时,我会收到“编码“UTF8”的字节序列无效”错误。问题看起来是这样的:

user=> SELECT mycol FROM table WHERE mycol2 IS NULL;
ERROR:  invalid byte sequence for encoding "UTF8": 0xc3 0x4c
user=> SELECT mycol FROM table WHERE mycol2 IS NULL;
 ?column?
----------
...(expected output here)

(按向上箭头重复命令不起作用;我必须重新输入它。)

在 shell 中进行实验,似乎具体来说,这种情况可能发生在我意外输入非 ASCII 字符然后将其删除时 - 例如,在我的冰岛键盘上,当我输入 * 时很容易意外输入 ´,或者当我输入句号时很容易意外输入 þ。似乎在我输入时会插入 0xc3 字节,但当我删除拼写错误时并没有正确删除,尽管它看起来美好的。

看起来如果我再擦除几次,我就可以删除错误的字节并“清除”该行,但这非常烦人 - 大多数时候我只是在没有自觉思考的情况下自动纠正拼写错误,如果我让哪怕一个拼写错误过去而没有额外按下退格键,整个事情就会崩溃。

有什么方法可以让 shell 按照预期运行,即当我按下退格键一次时正确地删除整个字符?

我在 iTerm 中通过 ssh 进入 Vagrant VM 时运行 psql,看看其中是否有任何变化。

相关内容