gpt4 book ai didi

python - Unicode 字符无法在终端 python 中正确打印

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:30 27 4
gpt4 key购买 nike

我编写了一个非常简单的程序来告诉我某些字符的 unicode 值。

程序如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

characters = [u'T', u'ב', u'€', u'木', u'♥']

for character in characters:

print(character + " has the unicode value :\t"+str(hex(ord(character))) + "\n")

它给出了这个输出:

T has the unicode value :   84

ב has the unicode value : 1489

€ has the unicode value : 8364

木 has the unicode value : 26408

♥ has the unicode value : 9829

我注意到当我在此处复制和粘贴时输出格式正确,但在我的计算机上,第二行在终端中显示如下

has the unicode value : 1489 ב 

我还尝试将输出放入一个文件并使用 vim 查看该文件,它看起来也是这样,应该首先打印的字符最后打印。这使我认为它打印正确但显示不正确。什么会导致这种情况发生?

最佳答案

可以使用 Unicode LEFT-RIGHT OVERRIDE (LRO) 字符 0x202D 覆盖希伯来字符的右对齐行为。

characters = [u'T', u'ב', u'€', u'木', u'♥']

for character in characters:

print(chr(0x202D) + character + " has the unicode value :\t"+str(hex(ord(character))) + "\n")

给出(在 OS X 终端上):

‭T has the unicode value :  0x54

‭ב has the unicode value : 0x5d1

‭€ has the unicode value : 0x20ac

‭木 has the unicode value : 0x6728

♥ has the unicode value : 0x2665

感谢@guribe94 确定问题。

您可能会发现字符串格式更易于阅读:

    print("%s%s has the unicode value :\t 0x%04x\n" %
(chr(0x202D), character, ord(character)))

关于python - Unicode 字符无法在终端 python 中正确打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com