我有以下情况:
encoded_string = str('дис'.encode('utf-8'))
我需要将其转换为字符串,因为Django的set_cookie()
需要一个字符串,而我似乎无法为其编写函数decode_string
:
decode_string(encoded_string) == 'дис'
再次出现。如果我不转换此字符串,则django返回内部服务器错误。 你能帮忙吗?
更新:
我希望我可以避免执行str()
步骤,但这不取决于我。 Django的set_cookie将字节字符串转换为str。
答案 0 :(得分:0)
不要使用str()
,而要使用decode
。
>>> 'дис' == 'дис'.encode('utf-8').decode('utf-8')
True
答案 1 :(得分:0)
嗯,如果我使用'дис'.encode('unicode-escape')
,那么
def decode_string(encoded_string: str) -> str:
return bytes(encoded_string.replace('\\\\','\\')[2:-1], 'utf-8').decode('unicode-escape')
是一种解决方案,但对我来说看起来很混乱。