【问题标题】:converts an abnormal character into a normal character (e.g., an unicode character) in python在python中将异常字符转换为正常字符(例如,unicode字符)
【发布时间】:2021-12-29 15:28:12
【问题描述】:

如何将异常字符转换为正常字符(例如,unicode字符),换句话说,解码异常字符/字符串如'â€Â'以显示其内容?

context='This Service does not use these “cookies†explicitly. However, the app may'
context1= context.encode('utf8') # encode('ascii')
print(context1)

输出:

 b'This Service does not use these \xc3\x83\xc2\xa2\xc3\x82\xc2\x80\xc3\x82\xc2\x9ccookies\xc3\x83\xc2\xa2\xc3\x82\xc2\x80\xc3\x82\xc2\x9d explicitly. However, the app may'

我想打印没有这些字符的字符串 (â€Â)

【问题讨论】:

  • 所以一个普通的print(context),按原样打印字符,是不需要或不起作用的。非 ASCII 字符应该怎么办?是否应该将它们排除在打印输出之外或转换为它们的 ASCII 等效项 - unicode normalization
  • “正常”或“异常”字符是什么意思?这些像“ 这样的非ASCII字符是否异常...是“€”(欧元的货币符号)正常吗?
  • 这看起来像 mojibake - 已使用多种编码进行编码的文本。你是怎么得到这个字符串的?

标签: python non-ascii-characters unicode-string


【解决方案1】:

是的,你可以试试这个。如果你不需要翻译非ASCII字符,你可以使用encode to ASCII:

content.encode('ascii','ignore')

#输出

This Service does not use these cookies explicitly. However, the app may'

【讨论】:

  • 不错的解决方案。不确定这是他们要求的。您能否添加一些链接并解释:例如module unicodedata 和带有“NFKD”的方法normalize 对我们的字符串做了什么,为什么我们需要编码到ASCII。
  • @Bhargav 感谢您的解决方案。这是一个很好的解决方案,但它不是我想要的最佳解决方案。有没有办法从字符串中删除“AAA”,这是由 Unicode 库产生的 âÂÂ。
  • 我需要输出类似于“此服务未明确使用这些 cookie。但是,该应用可能会'
  • 检查编辑的回复:)..是不是很简单?
  • @Bhargav 非常感谢
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多