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

Print string with special characters in 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"

由于您的字符串包含 \u 而不是 \u,因此反斜杠被转义,因此该字符串包含文字反斜杠。如果您将其写成 "Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam",那么 \u 将是一个正确的 Unicode 转义符。

问题是 \ 创建正常 \,而不是 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

您可以删除斜杠并使用打印。我认为额外的斜杠有干扰:

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

Binh Thanh, Hồ Chí Minh, Vietnam