我的 Django 应用程序可以处理 .txt
和 .doc
文件类型。应用程序会打开文件,将其与数据库中的其他文件进行比较,并输出一些报告。
现在的问题是,当文件类型为 .txt
时,我会收到 'utf-8' codec can't decode byte
错误(在这里我使用了 encoding='utf-8'
)。当我将 encoding='utf-8'
更改为 encoding='ISO-8859-1'
时,错误会变成 'latin-1' codec can't decode byte
。
我想找到适用于所有文件类型的编码格式。 这是我的函数的一小部分:
views.py
:
@login_required(login_url='sign_in')
def result(request):
last_uploaded = OriginalDocument.objects.latest('id')
original = open(str(last_uploaded.document), 'r', encoding='utf-8')
original_words = original.read().lower().split()
words_count = len(original_words)
open_original = open(str(last_uploaded.document), "r")
read_original = open_original.read()
report_fives = open("static/report_documents/" + str(last_uploaded.student_name) +
"-" + str(last_uploaded.document_title) + "-5.txt", 'w')
# Path to the documents with which original doc is comparing
path = 'static/other_documents/doc*.txt'
files = glob.glob(path)
rows, found_count, fives_count, rounded_percentage_five, percentage_for_chart_five, fives_for_report, founded_docs_for_report = search_by_five(last_uploaded, 5, original_words, report_fives, files)
context = {
...
}
return render(request, 'result.html', context)
open(<your_file>, encoding="utf-8", errors="ignore")
或 (errors="replace"
)。也许这可以帮助你?! - colidyreerrors="strict"
。 - colidyre