UTF8in literal和unicode point有什么区别?

2024-09-28 17:02:49 发布

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

我在这个website上画了个十字,显示了Unicode表。在

当我打印字母“ספר”时:

>>> x = 'ספר'
>>> x
'\xd7\xa1\xd7\xa4\xd7\xa8'

我得到这个字符'\xd7\xa1\xd7\xa4\xd7\xa8'。在

我认为python用utf-8unicode对单词“ספר”进行编码,因为这是默认值,对吧?在

但是当我运行这个代码时:

^{pr2}$

我得到了这个u'\u05e1\u05e4\u05e8',这是一个Unicode点,对吗?在

如何从utf8文本转换成Unicode点?在


Tags: 代码编码字母unicodewebsite字符单词utf
1条回答
网友
1楼 · 发布于 2024-09-28 17:02:49

@在第一个示例中,您创建了一个字节字符串(键入str)。您的终端确定了编码(本例中是UTF-8)。在

在第二个示例中,创建了一个Unicode字符串(类型unicode)。Python自动检测终端使用的编码(从sys.stdin.encoding)并将字节从UTF-8解码到Unicode码位。在

您可以通过解码将字节字符串转换为Unicode字符串:

unicode_x = bytestring_x.decode('utf8')

要转到另一个方向,您需要对编码

^{pr2}$

您通过对字符使用实际的UTF-8字节来指定文本;这在终端中可以正常工作,但在Python源代码中则不行;python2源代码仅作为ASCII文本加载。您可以通过设置源代码编码声明来更改这一点。这是在PEP 263中指定的;它必须是源文件中的第一行或第二行。例如:

# encoding: UTF-8

或者您可以坚持使用\uhhhh\xhh转义序列来表示非ASCII字符。在

您可能想了解Unicode和编码(二进制)字节字符串之间的区别,以及这与Python的关系:

相关问题 更多 >