如何在Python中打印原始Unicode?

6

我是Python的新手,所以可能无法很好地表达......

我得到了一个字符串'\xb9\xfe'

我想要以这种方式打印它'\xb9\xfe',而不是转换为中文字符'哈'

有什么正确的方法吗?

2个回答

5
使用原始字符串字面量代替:
r'\xb9\xfe'

或者打印出您的字符串的repr()输出:
print(repr('\xb9\xfe'))

那个原始字符串不会是 '' 'x' 'b' '9' '' 'x' 'f' 'e' 吗? - mpez0
@mpez0:是的,它会。不清楚OP真正想要哪个变量;是用8个字符存储值还是只在打印时产生该值。 - Martijn Pieters
为什么这个不起作用呢?
a = 'asdf\u0642\u064f\u0644\u0652' a 'asdfقُلْ' repr(a) "'asdfقُلْ'"
- Tjorriemorrie
1
@Tjorriemorrie:因为在Python 3中,如果您想要将非ASCII可打印字符表示为转义序列,则应使用ascii()而不是repr() - Martijn Pieters

1

正确的答案是使用s.encode('unicode_escape').decode()

。该方法与编码和解码Unicode字符有关。

s = "asdf\u0642\u064f\u0644\u0652"
print(s.encode('unicode_escape').decode())

输出将会是:

asdf\u0642\u064f\u0644\u0652

这样做是行不通的:

s = "asdf\u0642\u064f\u0644\u0652"
print(s)
print(repr(s))

输出将会是:

asdfقُلْ
'asdfقُلْ'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接