喜欢在:
u'Hello'
我的猜测是它表示“Unicode”,它是否正确?
如果是,那么什么时候可用?
答案 0 :(得分:109)
u'Some String'
中的u表示您的字符串是 Unicode字符串。
问:我很可怕,非常匆忙,我从谷歌搜索登陆这里。我正在尝试将这些数据写入文件,我收到了一个错误,我需要这个最简单,可能有缺陷的解决方案。
答:你应该真正阅读乔尔关于字符集的 Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 文章。
问:没有时间代码
A:很好。试试str('Some String')
或'Some String'.encode('ascii', 'ignore')
。但是你应该真正阅读关于Converting a Unicode string和this优秀,优秀的字符编码入门的一些答案和讨论。
答案 1 :(得分:99)
你是对的,请参阅 3.1.3. Unicode Strings 。
这是自Python 2.0以来的语法。
Python 3使它们成为冗余,因为默认的字符串类型是Unicode。版本3.0到3.2删除了它们,但它们是re-added in 3.3+以便与Python 2兼容以帮助进行2到3的转换。
答案 2 :(得分:50)
我的猜测是它表示“Unicode”,它是否正确?
是
如果是,那么什么时候可用?
Python 2.x。
在Python 3.x中,字符串默认使用Unicode,不需要u
前缀。 注意:在Python 3.0-3.2中,u是语法错误。在Python 3.3+中再次合法,可以更容易地编写2/3兼容的应用程序。
答案 3 :(得分:2)
以下内容应该有所帮助:
http://docs.python.org/library/functions.html#unicode
http://www.amk.ca/python/howto/unicode(如果您已熟悉Unicode原则,请跳至“Python的Unicode支持”)
答案 4 :(得分:2)
所有适用于人类的字符串都应使用u“”。
我发现在处理Python字符串时,以下思维方式有很大帮助:所有 Python清单字符串应使用u""
语法。 ""
语法仅用于字节数组。
在抨击开始之前,让我解释一下。大多数Python程序都开始使用""
表示字符串。但是他们需要支持互联网上的文档,因此他们开始使用"".decode
,突然之间他们就解码这个问题到处都是例外 - 所有这些都是因为""
用于字符串。在这种情况下,Unicode确实像病毒一样,会造成严重破坏。
但是,如果你遵循我的规则,你就不会有这种感染(因为你已经被感染了)。
答案 5 :(得分:2)
它的Unicode。
只需将变量放在str()
之间,它就能正常工作。
但是如果你有两个如下列表:
a = ['co32','co36']
b = [u'co32',u'co36']
如果您检查set(a)==set(b)
,它将显示为False,但如果您执行如下操作:
b = str(b)
set(a)==set(b)
现在,结果将为True。
答案 6 :(得分:1)
我来到这里是因为我的requests
输出中有滑稽的char综合症。我以为response.text
会给我一个正确解码的字符串,但是在输出中我发现了有趣的双字符,其中德语变音符应该是。
结果response.encoding
以某种方式显示为空,因此响应不知道如何正确解码内容并将其视为ASCII(我猜)。
我的解决方案是使用'response.content'获取原始字节并手动应用decode('utf_8')
。结果是schöneUmlaute。
正确解码
献给
VS。解码不正确
fĂźr