我正在使用 SMTP 和 CURL 通过 TOR 发送一些电子邮件,但遇到一个问题:我收到的一些中文字符比我应该收到的多,有什么想法吗?
这是我使用批处理脚本发送邮件的方式(我有一个文件变量):
curl.exe --socks5-hostname 127.0.0.1:9050 smtp://onionaddre.onion:port --mail-from [email protected] --mail-rcpt [email protected] --user [email protected]:password --upload-file %filetosend%
以下是原始消息:
0asf345£%$&fdasdhhs#@deadfga
这是我得到的:
聣聭聤聭聯聶聥耠職聮聯職耠職聩聢聴聹耠聣聬聩耍耛聳聢耍聲
答案1
这还不是一个真正的答案,但可能有帮助,并且不适合放在评论部分。
如果你仔细观察汉字,你会发现大多数汉字的左侧都有一个类似的东西(部首)。这通常意味着它们具有非常相似的代码点。
$ perl -e 'use utf8; $foo = "聣聭聤聭聯聶聥耠職聮聯職耠職聩聢聴聹耠聣聬聩耍耛聳聢耍聲"; while ($foo =~ s/^(.)//) { printf("%04x\n", ord($1)) }'
8063
806d
8064
806d
806f
8076
8065
8020
8077
806e
806f
8077
8020
8077
8069
8062
8074
8079
8020
8063
806c
8069
800d
801b
8073
8062
800d
8072
如果我们去掉80
s,我们就会得到纯 ASCII:
$ perl -e 'print "\x63\x6d\x64\x6d\x6f\x76\x65\x20\x77\x6e\x6f\x77\x20\x77\x69\x62\x74\x79\x20\x63\x6c\x69\x0d\x1b\x73\x62\x0d\x72\n"'
rmdmove wnow wibty cli
我无法理解那段文字的意义,但也许你可以。
答案2
从评论来看,您上传的文件是由另一个用于if ($success) { [System.IO.File]::AppendAllText($Path, $myvalue, [System.Text.Encoding]::Unicode)
将内容保存到磁盘的 Powershell 脚本创建的。
使用字符编码 UTF8 保存文件应该可以解决问题,因此请将其替换[System.Text.Encoding]::Unicode
为[System.Text.Encoding]::UTF8
。