【问题标题】:How to output special characters in Python?如何在 Python 中输出特殊字符?
【发布时间】:2019-10-15 17:23:49
【问题描述】:

我正在编写一个基本的 MapReduce 程序,其中输入文件是纯文本,基本上程序会计算一个单词在输入中出现的次数,并且必须输出另一个如下所示的纯文本文件:

第一个单词 4

第二个字 10

第三个字2

等,其中 (number)word 是出现在输入中的单词,除此之外的数字是它在文件中出现的次数。

我有代码并且它正在工作,但如果我的输入文本文件有特殊字符(á、é、ì、ö、û、ñ 等),输出文件将显示如下:

(例如,如果第一个单词是 fábrica,并且出现了 6 次):

fã¡brica 6

我该如何解决这个问题?谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拨打tour。如果您对所有内容都使用标准 Python 3 工具和 UTF-8 编码,那么您不应该遇到这样的问题 (mojibake)。您需要为问题创建一个minimal reproducible exampleedit 以将其添加到问题中。
  • 关键是您的代码使用与未来消费者预期相同的字符编码写入文件。抛开案例不谈,看起来您正在将 á(\xc3 \xa1) 的 UTF-8 编码写入文件,但查看文件时好像它是 ISO-8859 编码的(因为 \xc3 对应于 @987654327 @ 和 \xa1¡)。
  • 换句话说,问题可能不在于写入文件的代码,而在于您之后查看文件的方式。

标签: python python-3.x output special-characters


【解决方案1】:

你如何替换之前的值,像这样:

string.replace("á", "a").replace("é", "e").replace("í", "i").replace("ó", "o").replace("ú", "u")

这样你可以在错误发生之前解决它

【讨论】:

  • 这与解决问题一样可能引入问题;为什么假设aá 的可接受替代品?
  • 除了chepner所说的,这也是替换一堆字符的坏方法。更好的方法是使用str.maketrans 然后str.translate
猜你喜欢
  • 1970-01-01
  • 2023-03-07
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多