小编Jеd*_*еdd的帖子

如何摆脱代码中的 U+200B(Unicode 零宽度空格)?

我有这段Python代码:

\n
# Subroutine to calculate VAT\xe2\x80\x8b\ndef VAT(Total):\xe2\x80\x8b\n    return Total * 0.05 \xe2\x80\x8b\n\n# Main program\xe2\x80\x8b\nTotal = 100.12\xe2\x80\x8b\nValueAddedTax = VAT(Total)\xe2\x80\x8b\nToPay = Total + ValueAddedTax\xe2\x80\x8b\nprint("Total \xc2\xa3{:.2f} VAT \xc2\xa3{:.2f} To pay \xc2\xa3{:.2f}".format(Total, ValueAddedTax, ToPay))\n
Run Code Online (Sandbox Code Playgroud)\n

运行这个时,我得到:

\n
# Subroutine to calculate VAT\xe2\x80\x8b\ndef VAT(Total):\xe2\x80\x8b\n    return Total * 0.05 \xe2\x80\x8b\n\n# Main program\xe2\x80\x8b\nTotal = 100.12\xe2\x80\x8b\nValueAddedTax = VAT(Total)\xe2\x80\x8b\nToPay = Total + ValueAddedTax\xe2\x80\x8b\nprint("Total \xc2\xa3{:.2f} VAT \xc2\xa3{:.2f} To pay \xc2\xa3{:.2f}".format(Total, ValueAddedTax, ToPay))\n
Run Code Online (Sandbox Code Playgroud)\n

原因是代码包含U+200B ZERO WIDTH SPACE(UTF-8 编码:E2 80 8B),如以下输出所示hexdump -C

\n
\n00000000 23 20 …

python unicode python-3.x

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×1

python-3.x ×1

unicode ×1