我正在尝试将Php中的代码转换为Python,它包括使用 base64_encode 函数对使用 chr 函数获得的变量和base64进行编码。
这是Php中的代码:
$data = chr(ord('a')+ord('b'));
$data = base64_encode($data);
echo $data;
结果:
ww==
这是我在Python中尝试做的事情:
from base64 import b64encode
data = chr(ord('a')+ord('b'))
data = b64encode(data.encode()) // data.encode() is mandatory or I get an error saying that b64encode require a bytes-like object
print(data)
结果:
b'w4M='
谢谢您的帮助
Aymeric
答案 0 :(得分:0)
我不知道这是否是问题的真正答案,但问题是版本3中的python字符串使用unicode。因此可以替换php代码:
<?php
$data = chr(ord('a')+ord('b'));
$data = utf8_encode($data);
echo base64_encode($data); //w4M=
或者您可以为此使用https://www.php.net/manual/en/function.mb-chr.php
因此要更改python代码以使其像php一样工作-您需要在latin-1中对数据进行编码:
from base64 import b64encode
data = chr(ord('a')+ord('b')).encode('latin-1')
data = b64encode(data)
print(data) # b'ww=='
print(data.decode()) # ww==