python - python中的错误文本编码

标签 python python-2.7 encoding

我需要处理文本、单词,例如将单词与字典进行比较……而且我在编码方面遇到了问题。 txt文件是utf-8,代码也是utf-8。问题是当拆分为带有 š、č、ť、á 等字符的单词时...我尝试编码和解码并在网上搜索,但我不知道如何处理它。我查看了文件系统编码,它是 mbcs,默认编码是 utf-8。你能帮帮我吗?下面的代码是第一个版本。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    f = open("text.txt", "r+")

    text = f.read()

    sentences = re.split("[.!?]\s", text)

    words = re.split("\s", sentences[0])

    print sentences[0]
    print words

结果是:

Nexus 5 patrí v sučasnosti medzi a najlepšie aj smartfóny

['\xef\xbb\xbfNexus', '5', 'patr\xc3\xad', 'su\xc4\x8dasnosti', 'medzi', 'najlep\xc5\xa1ie', 'smartf\xc3\xb3ny']

当我使用时:

f = codecs.open("text.txt", "r+", encoding="utf-8")

结果是:

Nexus 5 patrí v sučasnosti medzi a najlepšie aj smartfóny

[u'\ufeffNexus', u'5', u'patr\xed', u'su\u010dasnosti', u'medzi', u'najlep\u0161ie', u'smartf\xf3ny']

我需要这样的输出:

['Nexus', '5', 'patrí', 'v', 'súčastnosti',....]

最佳答案

编码处理是正确的,u'patr\xed'只是一个unicode字符串在Python中的表示。在 shell 中尝试 print u'patr\xed' 亲自看看。

话虽如此,由于您似乎想将其用作字典,因此使用 unidecode 可能会有用。将 unicode 字符串规范化为 ASCII 的模块。

关于python - python中的错误文本编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175252/

相关文章:

python - 合并两个数据帧,其中一个包含间隔数据

python - Unicode编码错误: 'charmap' codec can't encode character '\x97' in position 206: character maps to <undefined>

python - 使用 argv 将参数传递给 python 中的函数

python - 如何在python中导入ssl、socket模块

python - 如何在 Windows 中安装 pacparser?

html - Node.js 请求 - 无法解码 HTML 页面

python - 在python 3中将转义的utf-8字符串转换为utf

python - 向图像添加填充以使它们成为相同的形状

linux - Linux 中存储的文本文件的字符编码在哪里?

python - Scipy - z 值的两个尾部 ppf 函数?