确定Python中字符串的编码
我是这个网站的新手,所以如果我需要改变这个问题,请告诉我!同样地,我对基本的64码也缺乏经验,所以请容忍我 在Python中,我有一个简短的程序,可以简单地解码一个base 64字符串:确定Python中字符串的编码,python,base64,ascii,non-ascii-characters,Python,Base64,Ascii,Non Ascii Characters,我是这个网站的新手,所以如果我需要改变这个问题,请告诉我!同样地,我对基本的64码也缺乏经验,所以请容忍我 在Python中,我有一个简短的程序,可以简单地解码一个base 64字符串: import base64 def decodeBase64(string): decodeableString = string for value in range(len(string)%4): decodeableString += '=' return
import base64
def decodeBase64(string):
decodeableString = string
for value in range(len(string)%4):
decodeableString += '='
return base64.b64decode(decodeableString)
尝试解码时:
0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvSDQutC+0LQg0LTQvtGB0YLRg9C/0LAG0LOG0LFQTNCW0L3QUNGOIFQO9CU0JDQM9CV0J3QNL06CK9WSZHZTFGGLYAO0JQNNCVIC8G0JRQM9CU0KCJ09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTPQRQKDCW0LFCAZNG=
作为一项挑战的一部分,我遇到了俄文角色,它不知道如何接近这些角色,所以它只是返回:
“代码”是一个“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的“b”型的\ \XX0\X0\XX0\X0\X0\X0\X0\X0\X0\X8\X8\X8\X0\X0\X8\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\x0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X8\X0\X0\X8\X8\X8\X0\X8\\\\\\\x94\xd0\x90\xd0\x9b\xd0\x95\xd0\x9d\xd0\x9e]:\nOVK8YLX/(\xd0\x98\xd0\x9c\xd0\xaf/\xd0\x9a\xd0\x9b\xd0\xae\xd0\xa7)\n=
通过在线使用不同的解码器,我了解到它包含俄语字符。有没有相对简单的方法让我的程序检查解码后的base 64字符串是否包含非ascii字符,然后将其翻译为非ascii字符?在您的特殊情况下,字符串是UTF-8编码的
在Python3.x中,您必须将其从字节
解码为str
,假设解码的字节位于x
:
>>> x.decode('utf-8')
'Ниже приведен код доступа к зданию [УДАЛЕНО]:\nOVK8YLX / (ИМЯ / КЛЮЧ)\n================================================== ======\nБаза 36'
但是,在一般情况下,您只能猜测编码。请参阅和相关问题。这个问题有点误导,因为问题的核心根本不是Base64。它更多的是确定文本字符串的编码,而事实上它是从Base64解码的或来自其他地方的,这与此无关。@JohnLM感谢您的允许我知道。我不完全确定这是否是一个Base64排他性问题,因为我不确定如何利用输出。