在 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')
您可以删除斜杠并使用打印。我认为额外的斜杠有干扰:
print(u"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam")
Binh Thanh, Hồ Chí Minh, Vietnam
我有这个字符串:
"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')
您可以删除斜杠并使用打印。我认为额外的斜杠有干扰:
print(u"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam")
Binh Thanh, Hồ Chí Minh, Vietnam