Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 b'的等价物是什么;字符串';关于变量?_Python_Python 2.7 - Fatal编程技术网

Python b'的等价物是什么;字符串';关于变量?

Python b'的等价物是什么;字符串';关于变量?,python,python-2.7,Python,Python 2.7,我需要在使用它之前对文本字符串进行编码,但唯一的问题是它是一个变量,我所知道的是,通常我会使用b'string'。我假设我会使用variable.encode(),但我会使用什么编码呢 编辑:对不起,我误解了这个问题,克里斯蒂安的回答帮助我意识到发生了什么。感谢大家的帮助。您不必做任何事情来编码像b'string'这样的变量,因为它被Python2.7忽略了。在python3.3中,它用于将字符串编码为字节。 我从NPE那里学到了这一点,NPE更详细地解释了这一点: 引述: 在中忽略前缀“b”或

我需要在使用它之前对文本字符串进行编码,但唯一的问题是它是一个变量,我所知道的是,通常我会使用b'string'。我假设我会使用variable.encode(),但我会使用什么编码呢

编辑:对不起,我误解了这个问题,克里斯蒂安的回答帮助我意识到发生了什么。感谢大家的帮助。

您不必做任何事情来编码像
b'string'
这样的变量,因为它被
Python2.7
忽略了。在
python3.3
中,它用于将字符串编码为字节。 我从NPE那里学到了这一点,NPE更详细地解释了这一点:

引述:

在中忽略前缀“b”或“b” Python 2;这表明 文字应该变成字节文字 在Python 3中(例如,当代码 自动转换为2to3)。A. “u”或“b”前缀后面可以跟 “r”前缀

各国:

字节文本总是以“b”或“b”作为前缀;它们生成字节类型而不是str类型的实例。他们可能只是 包含ASCII字符;数值为128或更大的字节 必须用转义来表示

烧瓶错误是由于字符串未在UTF-8中编码而导致的问题

这样编码:

your_string = your_string.encode('utf8') 

有关此问题的更多详细信息,请查看报告的github问题。

好的,您必须决定使用哪种编码。您可以使用UTF-8作为合理的默认值,也可以从环境中推断编码

环境可以是,例如:

  • HTTP连接中的内容类型标头
  • UNIX系统上的LANG/LC_CTYPE变量
  • 功能
然后可以通过将Unicode变量转换为字节字符串


另外,请查看。

您使用的是python 2.7还是python 3?+?抱歉,忘了提及这一点。我使用的是2.7,您担心将脚本移植到python 3吗?不担心将脚本移植到python 3。这很奇怪,因为我的Flask应用程序因此出现了严重问题。当我尝试使用bcrypt而不在字符串前面添加b时,我得到一个server500错误。显然,当对用户提供的输入使用bcrypt时,这给了我一个问题。我在Flask中得到的错误是“TypeError:Unicode对象必须在散列之前进行编码”@Zaphod Flask需要utf-8作为其参数。请看我的最新答案哦,谢谢,我完全误解了我的问题,这解决了它。我会尽快将此标记为已接受的答案。