Fly*_*ing 3 python python-idle
我在python中编写了一个自动化脚本,用于处理通过Telnet会话发送命令.出于某种原因,我无法让它发挥作用.经过大量令人沮丧的调试后,我发现当我翻译命令时:
"ulimit -s 1024"
Run Code Online (Sandbox Code Playgroud)
在命令中 - 在utf-8中变得奇怪.我不得不用字节翻译它,因为我是用Telnet发送它的(我知道我应该使用ssh,但老实说我的情况很好)并且我意识到它很奇怪,因为当我以字节打印命令时它将是:
b"ulimit \x##\x##\x##s 1024"
Run Code Online (Sandbox Code Playgroud)
我不记得确切的数字,但我通过复制并粘贴一个新的" - "来修复它,我在函数中使用了两行并且工作正常.
我从两行中复制并粘贴了部分,但是我键入了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'
Run Code Online (Sandbox Code Playgroud)
这两个人不是唯一可以混淆的人物; 还有一些:
等等
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |