【发布时间】:2023-04-07 07:03:01
【问题描述】:
我想测试我从文件中提取的一串字节是否产生有效的ISO-8859-15 编码文本。
我遇到的第一件事是关于 UTF-8 验证的类似案例:
https://stackoverflow.com/a/5259160/1209004
因此,基于此,我认为我为 ISO-8859-15 做类似的事情是很聪明的。请看以下演示代码:
#! /usr/bin/env python
#
def isValidISO885915(bytes):
# Test if bytes result in valid ISO-8859-15
try:
bytes.decode('iso-8859-15', 'strict')
return(True)
except UnicodeDecodeError:
return(False)
def main():
# Test bytes (byte x95 is not defined in ISO-8859-15!)
bytes = b'\x4A\x70\x79\x6C\x79\x7A\x65\x72\x20\x64\x95\x6D\x6F\xFF'
isValidLatin = isValidISO885915(bytes)
print(isValidLatin)
main()
但是,运行它会返回 True,即使 x95 不是 ISO-8859-15 中的有效代码点!我在这里忽略了一些非常明显的东西吗? (顺便说一句,我在 Python 2.7.4 和 3.3 上尝试过,两种情况下的结果都是相同的)。
【问题讨论】:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:检查字节是否在 Python 中生成有效的 ISO 8859-15(拉丁文) - Python技术站