[英]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"
问题是\\\\
它创建了正常的\\
,而不是 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 特定编码
由于您的字符串包含
\\\\u\u003c/code>而不是
\\u\u003c/code> ,因此反斜杠被转义,因此该字符串包含文字反斜杠。
如果您将其写为
"Binh Thanh, H\ồ Ch\í Minh, Vietnam"
,那么\\u\u003c/code>将是正确的 Unicode 转义。
您可以删除斜线并使用打印。 我认为额外的斜线是干扰:
print(u"Binh Thanh, H\u1ed3 Ch\u00ed Minh, Vietnam")
Binh Thanh, Hồ Chí Minh, Vietnam
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.