为什么需要 Unicode 代码点才能在 WSL 中使用 AHK 热字符串

Why Unicode codepoints are needed to use AHK hotstrings in WSL

提问人:msoutopico 提问时间:8/29/2019 最后编辑:msoutopico 更新时间:8/30/2019 访问量:99

问:

AutoHotKey 无法在 WSL 上插入数字,除非我使用代码点

每次使用时都想使用。为此,我需要插入:。但是,我不想每次都打字,因此我使用 AutoHotKey 脚本自动执行了该部分。python3pipenvpip --python /usr/bin/python3 etc.--python /usr/bin/python3

当我在记事本文件或路径栏等任何地方键入热字符串时,以下行工作正常:

::pipenv::pipenv --python /usr/bin/python3 

当我输入记事本时,字符串入了。pipenvpipenv --python /usr/bin/python3

但是,如果我在 WSL(适用于 Linux 的 Windows 子系统)上键入它,那么我会得到:

 pipenv 66python LusrLbinLpython·

我在 CMD 中得到了相同的结果,但令人惊讶的是,在 PowerShell 中没有(我在那里获得了预期的输出)。

为了使它在命令行上工作,我不得不使用十六进制代码点(或实体引用,不确定正确的名称是什么)而不是字符本身来重新编写脚本:

::pipenv::pipenv {U+2D}{U+2D}python {U+2F}usr{U+2F}bin{U+2F}python{U+33}

这样,输出在命令行和任何其他环境中都是预期的。我很惊讶会这样,因为这些字符(和)是普通的 ASCII 字符,所以我不明白为什么需要使用代码点。pipenv --python /usr/bin/python3-/3

AutoHotKey 脚本包含 UTF-8 Unicode(带 BOM)文本和 CRLF 行终止符。

简而言之,我已经设法使脚本工作。打开这个问题的原因是为了了解为什么会发生这种情况。谢谢。

Unicode 命令行 AutoHotKey 实体参考 代码点

评论


答: 暂无答案