在python中将字符串转换为其代码点

2024-09-27 00:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

有些像'‌'这样的字符是不可见的,所以我无法复制粘贴它。我想将任何字符转换为它的代码点,如'\u200D'

另一个例子是:'abc' => '\u0061\u0062\u0063'


Tags: 代码字符例子abc复制粘贴u0061u200du0063
2条回答

'\u0061\u0062\u0063'.encode('utf-8')将文本编码为Unicode

编辑:

由于python会自动将字符串转换为Unicode,因此无法看到值,但可以创建一个函数来生成该值

def get_string_unicode(string_to_convert):
    res = ''

    for letter in string_to_convert:
        res += '\\u' + (hex(ord(letter))[2:]).zfill(4)

    return res

结果:

>>> get_string_unicode('abc') 
'\\u0061\\u0062\\u0063'

请允许我重新表述你的问题。在python中,header将字符串转换为其代码点显然没有让每个人都理解,我认为,这主要是因为我们无法想象您想要它做什么

您需要的是一个包含Unicode转义表示的字符串

您可以这样做:

print(''.join("\\u{:04x}".format(b) for b in b'abc'))
\u0061\u0062\u0063

如果将打印的值显示为字符串文字,您将看到两倍的反斜杠,因为反斜杠必须在Python字符串中转义。所以它看起来是这样的:

'\\u0061\\u0062\\u0063'

其原因是,如果您只是在字符串文字中添加了未转义的反斜杠,如下所示:

a = "\u0061\u0062\u0063"

当您在提示符处显示a时,您将得到:

>>> a
'abc'

相关问题 更多 >

    热门问题