Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定Python中字符串的编码_Python_Base64_Ascii_Non Ascii Characters - Fatal编程技术网

确定Python中字符串的编码

确定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

我是这个网站的新手,所以如果我需要改变这个问题,请告诉我!同样地,我对基本的64码也缺乏经验,所以请容忍我

在Python中,我有一个简短的程序,可以简单地解码一个base 64字符串:

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排他性问题,因为我不确定如何利用输出。