在Unicode转义序列中混淆Python脚本

2024-09-24 22:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过使用Unicode转义序列混淆Python脚本

比如说,

print("Hello World")

在Unicode中,转义序列是:

\x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29

通过我的命令行,我可以通过以下方式实现这一点:

$ python3 -c \x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29
Hello World

我创建了一个文件,并将“Hello World”Unicode转义序列作为源代码放入其中

但当我运行它时,我得到:

$ python3 sample.py
SyntaxError: unexpected character after line continuation character

如何在源代码中使用Unicode转义序列


Tags: helloworldunicode转义序列x6fx65x69x72
1条回答
网友
1楼 · 发布于 2024-09-24 22:30:37

您可以使用PEP263头,它告诉Python源代码是用哪种编码编写的

格式为:

# coding=<encoding name>

通过使用unicode_escape编解码器(从https://docs.python.org/3/library/codecs.html中选择),Python将首先取消对字符串的扫描

sample.py

# coding=unicode_escape
\x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29

结果:

$ python3 sample.py
Hello World

相关问题 更多 >