[英]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.