首页 > 解决方案 > 读取文本文件时缺少连字符

问题描述

我尝试使用这些代码读取文本文件

Text_file = open("file.txt", 'r', encoding="UTF-8", errors='ignore') 
firstLine = Text_file.readline()
print(firstLine)

output : search leschnyhan syndrome 

但原文是这样的

search lesch–nyhan syndrome 

那么我该怎么做才能读取带有连字符的文本文件。谢谢你

标签: pythoncharacter-encoding

解决方案


当我将您的行复制并粘贴search lesch–nyhan syndrome到记事本中然后保存并使用十六进制编辑器检查时,我发现“连字符”实际上不是连字符。文件中的字节是

E2 80 93

当未编码时,产生带有十进制代码的 Unicode 字符8211并且是en-dash

有许多可以使用 Python 的控制台,其中一些不能处理标准 ASCII 或 ANSI 集之外的字符。您的控制台似乎无法处理该字符。尝试其他控制台,例如 Sypder 或 Visual Studio Code 中的控制台。

可以肯定的是,尝试执行print ord(firstLine[12:13])并查看是否得到结果8211。如果是这样,您将角色从文件中取出并放入您的角色中,而不是放入您的控制台中。


推荐阅读