python - utf-8和utf-8 BOM之间的不同python?
问题描述
我的任务是检查文件的编码。实际上,我的问题是 python 在其encoding
函数中提供的编码格式。我对python很陌生,所以我认为我忽略了一些东西。
我无法理解以下几点:
当我对具有
utf-8
BOM 格式的文件进行编码时,编码函数会告诉我它是utf-8
.当我检查 iso8859_6 格式时,它告诉我即使文件具有 iso8859_6 格式,他也无法识别这种格式,但如果我检查“cp720”,那么它能够识别它
根据这个文档,它应该能够识别iso8859_6
格式
我试图在 www 中找到可以理解的东西,但找不到东西。
import codecs
import io
class Format:
def __init__(self, file_Name):
self.file_Name = file_Name
def check_coding(self):
encoding_formats = ['iso8859_6','utf-8', 'utf-8-sig', 'ascii']
for ex in encoding_formats:
try:
fh = codecs.open(self.file_Name, 'r', encoding=ex)
fh.readlines()
fh.close()
except UnicodeDecodeError:
print('Die angelieferte Datei ist nicht nach %s kodiert' % ex)
response = False;
else:
print('Angelieferte Datei besitzt folgende Kodierung: %s ' % ex)
response = True;
break
return response
file_Name
格式是utf-8
BOM,所以它不应该告诉我它是utf-8
.
如果file_Names
格式是iso8859_6
它告诉我它不是以这种格式编码的,即使它是。
解决方案
推荐阅读
- python - Python Dataframe 检查所有行等于 False
- oracle10g - 查找前 2 个条目的 Oracle 查询
- swift - 如何获取 tableview 页脚(collectionview 已经可以使用的东西)
- ios - 使用 HTTPS api 调用时出现“传输安全已阻止明文 HTTP”错误
- c# - UWP ToggleButton 文本取决于 IsChecked C#
- python - 在地图上绘制焦点机制
- java - AtomicBoolean 用于线程安全的 Closeable
- wordpress - Woocommerce 多站点网络 => 从其他博客 ID 获取产品的属性术语
- html - 如何将 CSS 属性附加到标签?
- python - 在二维 numpy 数组的开头添加 0