从 Git Bash 终端窗口复制或粘贴时,控制字符 0x96 会潜入

从 Git Bash 终端窗口复制或粘贴时,控制字符 0x96 会潜入

我在 Windows 10 上并且正在使用 Git Bash。

当我从该窗口复制或粘贴到该窗口时,有时会在字符串的开头出现杂散字符“(十进制 150,十六进制 0x96)。

此字符通常是不可见的,这会导致“命令未找到”之类的错误。在我将问题归咎于复制粘贴之前,我已经为这些问题苦苦挣扎了很长时间。

最后,我很幸运地将一些文本作为参数粘贴到命令中,该命令打开了一个浏览器,其中包含粘贴文本的 URL,并且在浏览器地址栏中可以看到该字符:

在此处输入图片描述

我 100% 确定是粘贴操作产生了这个字符。也就是说,如果我将文本直接从源复制到浏览器,则不会出现该字符。如果我手动将相同的文本输入 Git Bash,则不会出现该字符。但如果我将文本粘贴到 Git Bash 中,则会出现该字符。

这真是太麻烦了。我快绝望了,因为我不知道是什么机制导致了这种现象。

150 号角色很特别。以下是我在 Google 上找到的:

受保护保护区的起点,保护区的起点,受保护保护区的起点

开始一串字符位置,这些位置不能手动更改或传输。也可以选择防止擦除。EPA 将结束该字符串。

问题:如何阻止此字符潜入粘贴到 Git Bash 的文本中

答案1

好的,这是由于我按了不必要的键造成的。

在 Linux 中,我习惯使用 进行粘贴Ctrl+Shift+V。当此命令无法在 Windows Git Bash 终端中粘贴时,我会记得按Shift+Ins

Ctrl+Shift+V看似没什么效果,但实际上它插入了一个不可见的控制字符。

如果我碰巧按下Ctrl+Shift+V命令的开头,结果将如下所示:

在此处输入图片描述

当我尝试将其复制并粘贴到浏览器中时,它显示如下:

$ echo
bash: $'\302\203\302\226echo': command not found

UPD:mintty支持 Git Bash 的终端有一个选项可以切换到 Ctrl+Shift+C/V 组合键!

相关内容