python3的檔案編碼問題

2021-08-14 13:25:31 字數 561 閱讀 1066

最近手頭要做一下文字過濾的相關,於是涉及到這個問題。因為用到wordmaker來生成字典,但是呢,wordmaker的input file目前只支援gbk編碼。所以,做的時候就遇到了檔案編碼轉換的問題。

最初的解決方法是直接指定檔案的編碼,open(file_name, 'w', encoding='gbk'),隨手跑了下發現可以的。但是跑全量的時候掛掉了,然後回頭看的時候,發現有些資料裡面不僅包含中文,還有其他非中文的字元,然後就網上各種找,發現了這個:

編碼名稱

用途utf8

所有語言

gbk簡體中文

gb2312

簡體中文

gb18030

簡體中文

big5

正體中文

big5hkscs

正體中文

然後就發現,gbk編碼只是utf-8編碼的一部分,那這樣的話不在gbk編碼表中的字元就不能轉換,然後就想著用encode函式把非gbk編碼的字元過濾掉然後再編碼,於是解決。

dat = data.encode('gbk', errors='ignore').decode('gbk')

Python3編碼問題

python3最重要的進步之一就是解決了python2中字串與字元編碼的問題。python2字串的缺陷如下 而python3則把系統預設編碼設定為了 utf 8 import sys sys.getdefaultencoding utf 8 之後,文字字元和二進位制資料分別用str和bytes表示。...

python3編碼問題

編碼問題 在python3中只有兩種資料型別 1 str 編碼形式是unicode,unicode任一字元編碼都存在 2 bytes 編碼形式是十六進製制 編碼encoding utf,gbk都只是一種編碼規則,按照各自的規則進行編碼,可以存在多種編碼規則 s hello中國 在記憶體中是以unic...

python3 編碼問題

asci 碼 8 位unicode 至少兩個位元組 utf 8 為了傳輸而設計的編碼方式 用於網路傳輸 或者儲存 python2 使用ascii編碼,不支援中文 python3 使用utf 8 編碼.文字字元和二進位制資料區分得更清晰,分別用 str 和bytes 表示。文字字元全部用 str 型別...