Python 字符串中的 u 前缀是什么?
- 2024-11-29 08:42:00
- admin 原创
- 93
问题描述:
例如:
u'Hello'
我猜测它表示“Unicode”,对吗?
如果是的话,从什么时候开始可以使用?
解决方案 1:
你是对的,请参阅3.1.3. Unicode 字符串。
这是 Python 2.0 以来的语法。
Python 3 使它们变得多余,因为默认字符串类型是 Unicode。版本 3.0 到 3.2 删除了它们,但它们在 3.3+ 中被重新添加,以便与 Python 2 兼容,从而帮助从 2 过渡到 3。
解决方案 2:
中的 uu'Some String'
表示你的字符串是Unicode 字符串。
问:我非常着急,刚从 Google 搜索来到这里。我正试图将这些数据写入文件,但出现了错误,我需要一个最简单的、可能有缺陷的解决方案。
答:你真的应该读一读 Joel 的关于字符集的论文《每个软件开发人员绝对、肯定必须了解的关于 Unicode 和字符集的最低要求(没有借口!)》。
问:抱歉,没有时间码
答:很好。尝试str('Some String')
或。但你真的应该阅读一些关于转换Unicode字符串的'Some String'.encode('ascii', 'ignore')
答案和讨论,以及这本关于字符编码的优秀入门书。
解决方案 3:
我的猜测是它表示“Unicode”,对吗?
是的。
如果有,从什么时候开始可用?
Python 2.x。
在 Python 3.x 中,字符串默认使用 Unicode,无需前缀u
。注意:在 Python 3.0-3.2 中,u 是语法错误。在 Python 3.3+ 中,u 再次合法,以便更轻松地编写 2/3 兼容应用程序。
解决方案 4:
我来这里是因为我的输出出现了奇怪的字符综合症requests
。我以为response.text
会给我一个正确解码的字符串,但在输出中,我发现了奇怪的双字符,而本该是德语变音符号。
结果不知response.encoding
为何是空的,所以response
不知道如何正确解码内容,只是将其视为 ASCII(我猜)。
我的解决方案是使用“response.content”获取原始字节并手动应用decode('utf_8')
它。结果是漂亮的变音符。
正确解码
毛皮
与不正确解码的
费尔
解决方案 5:
所有供人类使用的字符串都应使用 u""。
我发现以下思维方式在处理 Python 字符串时很有帮助:所有Python 清单字符串都应使用该u""
语法。该""
语法仅适用于字节数组。
在开始抨击之前,让我解释一下。大多数 Python 程序都是从使用""
for 字符串开始的。但后来它们需要支持来自互联网的文档,所以它们开始使用"".decode
,突然间它们到处都收到关于解码这个和那个的异常 - 所有这些都是因为使用了""
for 字符串。在这种情况下,Unicode 确实像病毒一样,会造成严重破坏。
但是,如果你遵循我的规则,你就不会受到这种感染(因为你已经被感染了)。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)