就像:

u'Hello'

我猜它显示的是“Unicode”,对吗?

如果有,从什么时候开始可用的?


你是对的,见3.1.3。Unicode字符串。

它是Python 2.0以来的语法。

Python 3让它们变得多余,因为默认的字符串类型是Unicode。版本3.0到3.2删除了它们,但为了与Python 2兼容,在3.3+中重新添加了它们,以辅助从2到3的过渡。


我猜它显示的是“Unicode”,对吗?

Yes.

如果有,从什么时候开始可用?

Python 2. x。

在Python 3中。x字符串默认使用Unicode,不需要u前缀。注意:在Python 3.0-3.2中,u是一个语法错误。在Python 3.3+中,更容易编写2/3兼容的应用程序是合法的。


所有人类使用的字符串都应该使用u""。

我发现下面的心态在处理Python字符串时很有帮助:所有Python清单字符串都应该使用u""语法。“”语法仅用于字节数组。

在开始抨击之前,让我解释一下。大多数Python程序一开始都使用""作为字符串。但是后来他们需要支持来自互联网的文档,所以他们开始使用"".decode,突然之间他们到处都是关于解码这个和那个的异常——这都是因为对字符串使用了""。在这种情况下,Unicode确实像病毒一样会造成严重破坏。

但是,如果你遵循我的规则,你就不会被感染(因为你已经被感染了)。


u' some String'中的u意味着你的字符串是Unicode字符串。

问:我非常非常匆忙,从谷歌搜索公司来的。我试图将数据写入文件,却得到一个错误,我需要最简单的,可能有缺陷的解决方案。

答:你真的应该读Joel关于字符集的文章《每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)》。

问:对不起,没有时间代码

答:好。尝试str('一些字符串')或'一些字符串'。编码(“ascii”、“忽略”)。但是你真的应该阅读一些关于转换Unicode字符串的回答和讨论,以及这个关于字符编码的非常非常好的入门读物。


我来这里是因为我的请求输出有滑稽炭综合症。我想回应。text会给我一个正确解码的字符串,但在输出中我发现了有趣的双字符,而德语变音应该是。

结果是响应。编码以某种方式为空,因此响应不知道如何正确解码内容,只是将其视为ASCII(我猜)。

我的解决方案是用'response '获取原始字节。Content '并手动对其应用decode('utf_8')。结果是schöne Umlaute。

正确解码的

Vs.不恰当的解码

fĂźr