gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:07:40 36 4
gpt4 key购买 nike

我有这段 Python 代码:

# Subroutine to calculate VAT​
def VAT(Total):​
return Total * 0.05 ​

# Main program​
Total = 100.12​
ValueAddedTax = VAT(Total)​
ToPay = Total + ValueAddedTax​
print("Total £{:.2f} VAT £{:.2f} To pay £{:.2f}".format(Total, ValueAddedTax, ToPay))
运行此程序时,我得到:
    def VAT(Total):​
^
SyntaxError: invalid character in identifier
原因是代码包含 U+200B ZERO WIDTH SPACE (UTF-8 编码:E2 80 8B),如 hexdump -C 的输出所示:
00000000 23 20 53 75 62 72 6f 75 74 69 6e 65 20 74 6f 20 |#子程序到|
00000010 63 61 6c 63 75 6c 61 74 65 20 56 41 54 e2 80 8b |计算增值税...|
00000020 0a 64 65 66 20 56 41 54 28 54 6f 74 61 6c 29 3a |.def 增值税(总计):|
00000030 e2 80 8b 0a 20 20 20 20 72 65 74 75 72 6e 20 54 |.... 返回 T|
00000040 6f 74 61 6c 20 2a 20 30 2e 30 35 20 e2 80 8b 0a |总* 0.05 ....|
00000050 0a 23 20 4d 61 69 6e 20 70 72 6f 67 72 61 6d e2 |.#主程序。|
00000060 80 8b 0a 54 6f 74 61 6c 20 3d 20 31 30 30 2e 31 |...总计 = 100.1|
00000070 32 e2 80 8b 0a 56 61 6c 75 65 41 64 64 65 64 54 |2....ValueAddedT|
00000080 61 78 20 3d 20 56 41 54 28 54 6f 74 61 6c 29 e2 |ax = 增值税(总计)。
00000090 80 8b 0a 54 6f 50 61 79 20 3d 20 54 6f 74 61 6c |...ToPay = Total|
000000a0 20 2b 20 56 61 6c 75 65 41 64 64 65 64 54 61 78 | + 增值税|
000000b0 e2 80 8b 0a 70 72 69 6e 74 28 22 54 6f 74 61 6c |....print("Total|
000000c0 20 c2 a3 7b 3a 2e 32 66 7d 20 56 41 54 20 c2 a3 | ..{:.2f} 增值税..|
000000d0 7b 3a 2e 32 66 7d 20 54 6f 20 70 61 79 20 c2 a3 |{:.2f} 付..|
000000e0 7b 3a 2e 32 66 7d 22 2e 66 6f 72 6d 61 74 28 54 |{:.2f}".format(T|
000000f0 6f 74 61 6c 2c 20 56 61 6c 75 65 41 64 64 65 64 |总,增值|
00000100 54 61 78 2c 20 54 6f 50 61 79 29 29 0a |Tax, ToPay)).|
0000010d

我想知道如何摆脱所有零宽度空间。

最佳答案

您可以通过使用 sed 用空字符串替换这些字符来摆脱这些字符。 :
$ sed 's/\xe2\x80\x8b//g' 输入文件 > 输出文件

或者,就地修改文件:
$ sed -i 's/\xe2\x80\x8b//g' 输入文件

关于python - 如何摆脱代码中的 U+200B(Unicode 零宽度空间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65772708/

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