gpt4 book ai didi

python - 解释为什么 "-"不是 "-"

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:55 25 4
gpt4 key购买 nike

我正在用 python 编写一个自动化脚本,用于处理通过 Telnet session 发送命令。出于某种原因,我无法让它工作。经过大量令人沮丧的调试后,我发现在翻译以下命令时:

"ulimit -s 1024"

命令中的 - 在 utf-8 中变得很奇怪。我必须以字节为单位翻译它,因为我是使用 Telnet 发送它的(我知道我应该使用 ssh,但老实说,这对我来说很好)我意识到这很奇怪,因为当我以字节为单位打印命令时,它将是:

b"ulimit \x##\x##\x##s 1024"

我不记得确切的数字,但我通过复制并粘贴一个新的“-”修复了它,我在函数中使用了两行并且工作正常。

我确实复制并粘贴了两行的部分,但我输入了 ulimit -s 部分。我也在使用 IDLE

有人知道发生了什么吗?

最佳答案

您成功输入了类似 U+2013 EN DASH 的内容或 U+2014 EM DASH , 这两个看起来很像 ASCII 字符 U+002D HYPHEN MINUS .

因为这些字符中的任何一个都在基本的 Latin-1 字母表之外,所以将其中任何一个编码为 UTF-8 会产生一个 3 字节的序列:

>>> print('\u2013')

>>> print('\u2013'.encode('utf8'))
b'\xe2\x80\x93'
>>> print('\u2014')

>>> print('\u2014'.encode('utf8'))
b'\xe2\x80\x94'

这两个并不是唯一容易混淆的字符;还有一些:

等等

关于python - 解释为什么 "-"不是 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31391873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com