打印“Dü塞尔多夫”使用Python
我正在尝试使用字符串 Düsseldorf。当我这样做时:
# -*- coding: utf-8 -*-
print "Düsseldorf"
它会打印奇怪的字符。有人可以帮我吗?
非常感谢。
I am trying to use the string Düsseldorf. When I do that :
# -*- coding: utf-8 -*-
print "Düsseldorf"
it prints strange characters. Could anyone help me please ?
Thank you very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
“Python 中的 Unicode,完全揭秘”
"Unicode In Python, Completely Demystified"
最有可能的是,您的编辑器未设置为生成 UTF-8 输出。将其设置为输出 UTF-8 应该可以解决该问题。
或者,使用 unicode 转义:
请注意字符串文字 应该以
u
为前缀(对于 unicode)。无前缀文字(如“Düsseldorf”)生成str
对象,这些对象是字节数组(尽管有名称),而不是字符串。因此,在具有正确配置的编辑器的 Python 2.x 中,您希望:在 Python 3.x 中,通过让
str
对象表示字符串并引入bytes
字节数组类型,如b'D\xc3\xbcsseldorf'
所示。Most likely, your editor is not set to produce UTF-8 output. Setting it to output UTF-8 should fix the problem.
Alternatively, use unicode escapes:
Note that string literals in Python 2.x should be prefixed with a
u
(for unicode). Unprefixed literals(like"Düsseldorf"
) generatestr
objects which are byte arrays (despite the name), not strings. Therefore, in Python 2.x with a correctly configured editor, you want:In Python 3.x, the situation has been rectified by letting
str
objects represent, well, strings, and introducing thebytes
type for byte arrays, as inb'D\xc3\xbcsseldorf'
.