亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python判斷文件和字符串編碼類型的實例

 更新時間:2017年12月21日 09:38:50   作者:淺醉櫻花雨  
下面小編就為大家分享一篇Python判斷文件和字符串編碼類型的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

python判斷文件和字符串編碼類型可以用chardet工具包,可以識別大多數(shù)的編碼類型。但是前幾天在讀取一個Windows記事本保存的txt文件時,GBK卻被識別成了KOI8-R,無解。

然后就自己寫了個簡單的編碼識別方法,代碼如下:

coding.py

# 說明:UTF兼容ISO8859-1和ASCII,GB18030兼容GBK,GBK兼容GB2312,GB2312兼容ASCII
CODES = ['UTF-8', 'UTF-16', 'GB18030', 'BIG5']
# UTF-8 BOM前綴字節(jié)
UTF_8_BOM = b'\xef\xbb\xbf'

# 獲取文件編碼類型
def file_encoding(file_path):
 """
 獲取文件編碼類型\n
 :param file_path: 文件路徑\n
 :return: \n
 """
 with open(file_path, 'rb') as f:
  return string_encoding(f.read())

# 獲取字符編碼類型
def string_encoding(b: bytes):
 """
 獲取字符編碼類型\n
 :param b: 字節(jié)數(shù)據(jù)\n
 :return: \n
 """
 # 遍歷編碼類型
 for code in CODES:
  try:
   b.decode(encoding=code)
   if 'UTF-8' == code and b.startswith(UTF_8_BOM):
    return 'UTF-8-SIG'
   return code
  except Exception:
   continue
 return '未知的字符編碼類型'

說明:file_encoding方法用于判斷文件編碼類型,參數(shù)為文件路徑;string_encoding方法用于判斷字符串編碼類型,參數(shù)為字符串對應的字節(jié)數(shù)據(jù)

使用示例:

import coding
file_name = input('請輸入待識別文件路徑:\n')
encoding = coding.file_encoding(file_name)
print(encoding)

以上這篇Python判斷文件和字符串編碼類型的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論