在Python中打印带有特殊字符的字符串

2024-06-16 11:41:02 发布

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

我有这个字符串:

"Binh Thanh, H\\u1ed3 Ch\\u00ed Minh, Vietnam"

我不确定它是如何编码的(unicode/utf-8…),但我知道它对应于这个:

"Binh Thanh, Hồ Chí Minh, Vietnam"

我想创建一个函数来正确显示它

用法:

def display_characters(text):
    print(text)
    # .encode? .decode? utf-8? unicode?


display_characters("Binh Thanh, H\\u1ed3 Ch\\u00ed Minh, Vietnam")

期望值:

"Binh Thanh, Hồ Chí Minh, Vietnam"

Tags: 函数字符串text编码displayunicodechutf
3条回答

问题是\\,它创建正常的\,并且不是unicode的一部分。你知道吗

Python有特殊的编码'raw_unicode_escape''unicode_escape',这有助于解决unicode中的一些问题。你知道吗

text = "Binh Thanh, H\\u1ed3 Ch\\u00ed Minh, Vietnam"

text = text.encode().decode('raw_unicode_escape')

print(text)

在这个例子中也可以unicode_escape

text = text.encode().decode('unicode_escape')

文件:Python Specific Encodings

因为字符串包含\\u而不是\u,所以反斜杠被转义,所以这个字符串包含文本反斜杠。如果改为"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam",那么\u将是一个正确的Unicode转义。你知道吗

可以删除斜杠并使用print。我认为多余的斜线干扰了:

print(u"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam") 

Binh Thanh, Hồ Chí Minh, Vietnam


相关问题 更多 >