繁体   English   中英

将字符串转换为 unicode 视图

[英]Convert string to unicode view

我有一个字符串

s = "Санкт-Петербург"

我想将字符串转换为

\u0421\u0430\u043D\u043A\u0442-\u041F\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433

我的代码

x = "Санкт-Петербург"
y = str(x.encode('unicode-escape')) # I want y to be string
print(y) # b'\\u0421\\u0430\\u043d\\u043a\\u0442-\\u041f\\u0435\\u0442\\u0435\\u0440\\u0431\\u0443\\u0440\\u0433'

摆脱b'\\\\的最佳方法是什么?

使用[2:-1]切片,它将切掉b'和结尾' ,然后将所有'\\'替换为'' 方法如下:

x = "Санкт-Петербург"
y = str(x.encode('unicode-escape'))
print(y[2:-1].replace('\\\\', '\\'))

输出:

\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433

您需要做的就是使用replace()方法用2 个反斜杠替换4 个反斜杠 之后,您可以使用strip()方法strip()开头的b'和结尾的'

以下是您可以继续的方法:

y = y.replace('\\\\', '\\')    # Replace backslashes
y = y.strip("b'")              # Strip the unnecessary parts

print(y)                       # Print out the result

输出


\u0421\u0430\u043D\u043A\u0442-\u041F\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433

PS: strip("b'")也会去掉单引号的字符串末尾。

编辑

正如@Aplet123 所指出的, strip("b'")可能会导致任何在开头或结尾包含 ASCII b'字符串出现问题。 因此,可以使用字符串 slice 代替strip() 您需要做的就是将y = y.strip("b'")行替换为:

y = y[2:][:-1]

在这里, 2:将去除开头的b'并且:-1将去除尾随的'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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