如何在 Python 中打印欧元 (€) 符号?

新手上路,请多包涵

我正在使用命令行解释器(适用于 Windows 的 v3.5)自学 Python。

我想要做的就是输出一些包含欧元 (€) 符号的文本, 我知道它是代码 80h (128 dec)。

 #!
# -*- coding: utf-8 -*-

mytext = 'Please pay \x8035.'
print(mytext)

它落在最后一行:

 UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 11: character maps to <undefined>

我做了很多谷歌搜索(重新编码等),我大致知道打印命令失败的原因。修改上面的代码表明 \x7f 之前的 ASCII 代码可以正常工作,正如人们所期望的那样。

但我无法弄清楚如何显示 ,而且我发现有关编码的信息势不可挡且难以理解。 (记住我只是个菜鸟!)

  • 我试过在文本字符串前加上 u 来首先创建一个 unicode 字符串。
  • 我已经尝试创建一个中间对象 outputtext = mytext.encode(‘utf-8’) 但是用 print 输出它会将字符串扩展为更神秘的形式: b’Please pay \xc2\x8035.’
  • 我试图找到一个不同的函数而不是 print 来输出这个中间字符串,但是还没有任何效果。

请有人能告诉我一些有效的代码,这样我 可以研究它并从那里向后工作。谢谢!

原文由 LD2k 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 758
1 个回答

您可以使用 Unicode 字符名称

\N{name} 是打印 unicode 字符符号的好方法。

这是示例运行….

 >>> print "Please pay %s"%(u"\N{euro sign}")
Please pay €
>>> print "Please pay %s"%(u"\N{dollar sign}")
Please pay $
>>> print "Please pay %s"%(u"\N{rupee sign}")
Please pay ₨
>>> print "Please pay %s"%(u"\N{pound sign}")
Please pay £

原文由 Gopal Prasad 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题