![从 Git Bash 终端窗口复制或粘贴时,控制字符 0x96 会潜入](https://linux22.com/image/1563454/%E4%BB%8E%20Git%20Bash%20%E7%BB%88%E7%AB%AF%E7%AA%97%E5%8F%A3%E5%A4%8D%E5%88%B6%E6%88%96%E7%B2%98%E8%B4%B4%E6%97%B6%EF%BC%8C%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6%200x96%20%E4%BC%9A%E6%BD%9C%E5%85%A5.png)
我在 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 组合键!