【问题标题】:How to print overline character in python 3?如何在 python 3 中打印上划线字符?
【发布时间】:2017-10-25 20:42:47
【问题描述】:

请不要将我的问题标记为已回答,因为在有关 stackoverflow 或 Unicode HOWTO 的所有问题中,我无法弄清楚如何在 Python 3 中打印上划线或 U+203E 字符。有人可以请用婴儿程序员语言解释如何打印这样的 unicode 字符?我尝试了一些东西,但老实说我不知道​​自己在做什么。

我正在使用 Kubuntu xenial (16.04)。

当我尝试打印字符时,我得到一个 UnicodeEncodeError。我的问题是,如何解决这个错误?

编辑 1:问题定位

我现在发现我的语言环境设置为 POSIX,这将是 ASCII 编码。我将尝试将其设置为 UTF-8 编码。

编辑 2:仍然没有解决方案

我已经找到了我需要改变的地方,但我还没有找到如何去做。对于遇到相同问题的任何人,都会有一条评论,其中包含指向解决类似问题的帖子的链接。

编辑 3:最终答案

Here 是一个指向 askubuntu 论坛的链接,我在该论坛中询问如何编辑我的 /etc/default/locale 文件。事实证明,Linux shell 中的一个命令就足够了。对我来说很多东西都不起作用,但是这个命令允许我将我的语言环境设置为 en_US.UTF-8:sudo /usr/sbin/update-locale LANG=en_US.UTF-8。重新启动我的操作系统后,设置已应用并且我的语言环境已更改。

现在我不再需要上划线字符了,因为我已经学会了使用图形库,但是由于我的语言环境,我遇到了多个问题。感谢大家的建议!

【问题讨论】:

  • print("\u203e")?
  • @juanpa.arrivillaga 这给了我一个 UnicodeEncodeError。我将编辑我的问题以进行澄清
  • 是的,这意味着您的终端不支持 unicode,或者没有启用 unicode 支持(即设置为使用其他编解码器解码)
  • 确切地遇到了什么错误?但是,是的,问题可能出在您的终端上,而不是 Python。
  • 尝试类似解决方案here

标签: python python-3.x unicode locale


【解决方案1】:

使用\u 表示一个unicode 字符:print("\u203e")

【讨论】:

    【解决方案2】:

    您需要改用组合字符 U+0304。

    print(u'a\u0304')
    

    ā U+0305 可能是一个更好的选择(正如 viraptor 所建议的那样)。您还可以使用 Unicode 罗马数字(U+2160 到 U+217f)代替常规的大写拉丁字母,尽管(至少在我的终端中)它们不能很好地与上划线一起呈现。

     print(u'\u2163\u0305')
    

    Ⅳ̅

     print u'I\u0305V\u0305'
    

    我̅V̅

    【讨论】:

    • 我只想要简单的上划线字符,下面没有任何字符,所以我需要 \u203e。我的问题是我不知道如何修复 UnicodeEncodeError
    • 我真的没有任何代码。这就是我所拥有的:'print (u"\u203e")'
    • 嗯,试试 python -c 'print (u"\u203e")' 和 python3 -c 'print (u"\u203e")',答案一样吗?
    【解决方案3】:

    您的sys.stdout.encoding 似乎是'ascii'
    尝试设置为'utf-8':

    import sys, codecs
    sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())
    
    print ('\u203e')
    

    【讨论】:

    • 如果我尝试这样做,这就是我的结果:��
    【解决方案4】:
    print(u' \u0305'*k)
    

    k 以字符为单位的行长度。

    例如

    print(u' \u0305'*5)
    

    【讨论】:

    • 这完全没有抓住问题的重点,而且几年前也得到了充分的回答。
    猜你喜欢
    • 2017-12-27
    • 2017-02-16
    • 1970-01-01
    • 2016-05-25
    • 2020-03-31
    • 1970-01-01
    • 2017-01-10
    • 2011-03-03
    • 2014-04-29
    相关资源
    最近更新 更多