【问题标题】:Python - Comparing a string against the Unicode replacement-characterPython - 将字符串与 Unicode 替换字符进行比较
【发布时间】:2017-01-16 15:47:20
【问题描述】:

我有一个非常大的工作项目(在 Java 中),并且在迁移到 UTF-8 后编码发生了变化。 我正在用 python 编写一个脚本来替换每个“Unicode 替换字符”(�),但我在执行此行时遇到了问题:

if ("�" in word) :
    // replace word for proper one

显然这不起作用,因为 Python 解释器不理解特殊字符。我查了一下,发现类似 u"\uFFD" 但无法正常工作。

编辑:我尝试在 Python IDLE shell 中执行此操作并出现此消息

【问题讨论】:

  • 你到底是什么意思? Python 3 对字符串使用 unicode,并且可以检测字符串中是否存在“�”。
  • 什么不起作用?找到单词中的字符?还是更换步骤?
  • 如果控制台不知道如何显示某些字符,您可以在控制台中看到 "�" - 但这并不意味着您在 Python 中的文本中有 "�"

标签: python unicode replace utf-8 character


【解决方案1】:

如果我误解了你的问题,我会删除这个答案,但是在 Python 3 中(以及进一步测试 Python 2)你可以像处理任何其他字符一样处理像“�”这样的 Unicode 字符:

def replace_special_characters(sentence):
    return sentence.replace("�", "REPLACEMENT")

sentence_a = "foo bar"
sentence_b = "baz �"

print(replace_special_characters(sentence_a))
print(replace_special_characters(sentence_b))

输出

foo bar
baz REPLACEMENT

【讨论】:

  • 我认为可以在 Python 2 中使用。至少在我的 linux box 2.7.10 上,它可以工作
  • @MooingRawr 是的,刚刚在 Python 2.7.10 IDLE shell 上测试了这个,它工作正常,虽然我第一次运行它时出现了一个关于放置一些“utf-8”声明的警告在顶部。
  • @Tagc 我尝试在 Python IDLE shell 中执行此操作,但出现此消息 img.ctrlv.in/img/17/01/16/587cfb8b91399.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 2018-10-05
  • 2013-05-04
  • 2021-03-04
相关资源
最近更新 更多