python - 删除特殊代码转换为正常 (`%u021`, `%u0219`)
问题描述
我有这个值的变量:
'Strada Constitu%u021Biei, Foc%u0219ani 620123, Romania'
我需要删除此代码%u021
,%u0219
.. 我尝试了互联网上的所有教程,但没有成功。
我如何将此字符串转换为普通字符?
我需要这个输出:
'Strada Constitutiei, Focsani 620123, Romania'
解决方案
我们需要在您的示例中替换的序列实际上是%u021B
and %u0219
。谷歌搜索这些,我们发现它们“几乎”是 unicode 转义序列。唯一的区别是,它们不是以反斜杠开头,而是以百分号开头。如果我们有正确的 unicode 序列,我们可以对其进行编码(将其转换为字节),然后使用编码“unicode-escape”再次对其进行解码。
因此,要转换您的输入,我们%
首先替换所有符号,然后应用此方法:
def custom_decode(string):
return (
string
.replace("%", "\\") # "\\" here is double as it needs to be escaped
.encode()
.decode("unicode-escape")
)
custom_decode("Strada Constitu%u021Biei, Foc%u0219ani 620123, Romania")
# "Strada Constituției, Focșani 620123, Romania"
custom_decode
这将我们方法的潜在输入限制为没有独立"%"
字符的字符串,即不表示转义序列的 % 符号。
您可能想阅读一般的字符串编码,特别是在 python 中,以便更好地了解这里发生的事情。
推荐阅读
- excel - 如何使用 setStartupBehavior API 调用?
- flutter - 颤振将“,”替换为“。”
- python - python - 有没有办法使用列表推导根据提取的子列表的公共索引创建列表?
- swift - Swift Error with (outlets, keyPath, key value and UITableViewCellContentView)
- python - *args 和 **kwargs Python
- r - RSelenium:配置 Firefox 远程驱动程序以使用 Tor 网络
- terraform - 无法使用 Terraform 在 AzureVM 中远程执行
- c# - 根据用户权限屏蔽某些数据
- php - 通知 API 系统正确流程
- javascript - 为什么 -1 * 0 = -0 在 JavaScript 中?