1、在系統預設編碼為ascii的系統中,儲存中文到檔案是亂碼:「unicodedecodeerror: 『ascii』 codec can』t decode byte 0xe7 in position 7: ordinal not in range(128)"
2、在window和linux檔案路徑分隔符不相同,同乙個指令碼在不同系統找不到對應路徑/檔案
import sys
# 如果系統預設編碼為ascii,則設定編碼格式為utf8
if sys.getdefaultencoding() == 'ascii':
reload(sys)
sys.setdefaultencoding('utf8')
import re
import os
def sepchange(path):
'''路徑分隔符替換
:param path: 路徑
:return: 替換過系統分隔符的路徑
'''if re.search('/',path):
path = path.replace('/',os.sep)
elif re.search(r'\\',path):
path = path.replace(r'\\',os.sep)
else:
pass
return path
完整的sysencoding.py檔案內容:
# coding:utf-8
'''note:
更換路徑間隔符
更換編碼格式為'utf-8'
author:qred
date:2019/8/20
'''import re
import os
import sys
if sys.getdefaultencoding() == 'ascii':
reload(sys)
sys.setdefaultencoding('utf8')
def sepchange(path):
'''路徑分隔符替換
:param path: 路徑
:return: 替換過系統分隔符的路徑
'''if re.search('/',path):
path = path.replace('/',os.sep)
elif re.search('\\',path):
path = path.replace('\\',os.sep)
else:
pass
return path
在需要進行編碼格式的指令碼頭部引入該檔案,即可實現ascii轉utf8的變換。
如果指令碼中涉及不通作業系統的檔案路徑轉換,可以呼叫sepchange實現檔案路徑的快速轉換。
python2 7中文編碼 python2 7
我從外部api中獲得了乙個字串 u4ece u8d77 u70b9 u5411 u6b63 u5357 u65b9 u5411 u51fa u53d1,u884c u9a76170 u7c73,u76f4 u884c u8fdb u5165 u4e2d u5173 u6751 u4e1c u8def...
python2 7編碼問題
在使用python從庫里拿到乙個字段進行比較時,出現以下錯誤 ascii codec can t decode byte 0xe5 in position 3 ordinal not inrange 128 原因 python的str預設是ascii編碼,和unicode編碼衝突,而從資料庫中拿到的...
python2 7編碼的問題
python2.7預設的ascii編碼,遇到中文時會出現一大堆毛病。1 對於中文的輸出,特別是輸出到檔案中去,需要在編碼開題加上 coding utf 8,中文字元需要做相應的編碼轉換。如 str u 啦啦啦,德瑪西亞 e str.encode utf 8 with open out.txt w a...