我有这个字符串:
"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"
答案 0 :(得分:2)
问题是\\
,它会创建普通的\
,而不是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')
答案 1 :(得分:1)
由于您的字符串包含\\u
而不是\u
,所以反斜杠被转义,因此该字符串包含文字反斜杠。如果将其写为"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam"
,则\u
将是正确的Unicode转义。
答案 2 :(得分:0)
您可以删除斜线并使用打印。我认为多余的斜线会干扰:
print(u"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam")
Binh Thanh, Hồ Chí Minh, Vietnam