繁体   English   中英

在 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"

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM