在python3中用的是unicode編碼,unicode號稱萬國碼,可以向所有的編碼進行相容。不會出現這種問題。
python2中使用的是ascii編碼,會出現這種問題。解決步驟如下。
對**的編碼進行註解
在頭部加入
對檔案進行編碼解碼
python2
python編碼之間unicode作為中間的過度。所以編碼能夠進行通用:
s = "中文"
print(s.decode("utf-8").encode("gbk"))
編碼解碼整個過程,就好像是unicode是乙個翻譯官一樣:例如jbk和gbk之間的乙個過程:
jbk無法直接轉換到gbk,所以需要有乙個過程, jbk decode生成unicode utf-8然後在進行encode生成gbk
encode 在編碼的同時,會把資料轉換成byte型別
import sys
print(sys.getfilesystemencoding())
s = "中文" #py3 預設就是utf8 unicode向下相容utf-8
s_to_gpk = s.encode("gbk")
print(s_to_gpk.decode("gbk")) #py3是不需要轉換的,但是要轉的話還要轉回去
補充:'''
-----二進位制:(0 and 1)
-------->>ascii :只能存放英文河拉丁字元。乙個字元佔乙個位元組,8位
--------------->>gb2312:只能6700多個中文,2023年
--------------------->>gpk1.0:存了2萬多個字元,1995
--------------------------->>gb18030:2000,27000中文(在中國軟體發布的時候必須用gb18030)
---------->>unicode: utf-32:乙個字元佔四個位元組
---------->>unicode: utf-16>乙個字元佔兩個位元組或兩個以上,65535(實在找不到的時候在utf-32裡面找)
---------->>unicode: utf-8:乙個英文用ascii碼來存,乙個中文佔3個位元組,utf=8表示是根據表示什麼來決定大小的。
---------->>gbk gb2312 表示中文得時候用得是兩個位元組。
'''原文章:
python查詢中文字元
filename seek.py import unicodedata import sys import os class seek 功能 查詢中文,並替換成指定字元或字串 使用方法 python指令碼用法 引數說明 d 檔案目錄 絕對或相對路徑 預設為指令碼所在目錄 t 檔案型別 檔名字尾,如....
Python提取中文字元
寫這個jupyter的原因是好幾次自己爬完新聞之後,發現中間有些是html標籤 或者其他多餘的英文本元,自己也不想保留,那麼這時候乙個暴力簡單的方法就是使用 unicode 範圍 u4e00 u9fff 來判別漢字 unicode 分配給漢字 中日韓越統一表意文字 的範圍為 4e00 9fff 目前...
python中文字元擷取亂碼
python學習中 python中關於中文字串擷取的問題 中文字元擷取亂碼 在python中乙個中文字元佔三個英文本元,看以下 print str 0 6 擷取啤酒兩個中文字元,需要從0開始截到6 print str 0 5 輸出 啤酒啤 就會出現亂碼 usr bin python coding u...