Python——Output not utf-8錯誤解決辦法

Deng笨蛋發表於2016-10-01

SublimeText是一款可以支援多種程式語言的程式碼編寫軟體,支援程式碼的縮排、高亮、程式碼補全等功能,使用起來比較方便。SublimeText3可以在網上下載,較綠色的版本內建的外掛比較少,需要自己新增,但是網上也有內建整套外掛而且是破解版,可以在相關資源網站上下載試用一下。這裡提供一個CSDN上一個Sublime Text3 64位綠色破解版 內建整套外掛的資源:

http://download.csdn.net/download/chichudijiejue/9501456
這裡寫圖片描述

Sublime 編寫Python還是比較方便的,編寫程式碼看起來比較有感覺,比在Windows下使用DOS或者安裝Python的IDE好看一點。

# -*- coding: utf-8 -*-
import numpy as np
from scipy.misc import imread, imresize
import matplotlib.pyplot as plt
img = imread('C:\Users\Mr_Deng\Desktop\girl.jpg')
img_tinted=img*[1,0.90,0.5]
# 顯示調色前的圖片
plt.subplot(1,2,1)
plt.imshow(img)
# 顯示調色後的圖片
plt.subplot(1,2,2)
plt.imshow(np.uint8(img_tinted))
plt.show()
print 'image'

Sublime編寫Python程式碼還是很合適的,但是在使用的過程中也出現了一些問題,例如最難在用Python做KNN演算法時,編譯程式碼報錯:Output not utf-8,錯誤資訊意思就是指令碼輸出的資訊不是某種指定編碼。
這裡寫圖片描述

通過在網上查閱相關資料,找到了一些解決的辦法。第一種修改編碼格式,指定的編碼一般在XX.sublime-build裡,比如ruby.sublime-build的內容為:

{  
    "shell_cmd": "ruby \"$file\"",  
    "file_regex": "(\\w:...*?):([0-9]*):?([0-9]*)",  
    "selector": "source.ruby",  
    "encoding": "utf-8",   
}  

其中encoding就是指定的編碼,ruby.sublime-build可以在Sublime Text 3\Packages\Ruby.sublime-package裡找到。可以通過修改ruby.sublime-build來修改輸出文字資訊的編碼。
1.將ruby.sublime-build檔案從Ruby.sublime-package裡複製出來,(注意:Ruby.sublime-package是一個zip壓縮檔案,只要將其字尾名改為zip即可開啟這個壓縮檔案)。
2.將ruby.sublime-build複製到sublime text的Data\Packages\User\目錄。
3 開啟此檔案,將此檔案中的”encoding”: “utf-8”修改為”encoding”: “gbk”。
以上這種修改有侷限,比如我有時候輸出的是utf-8,有時候輸出的是gbk,這時候就不行了。
第二種方法可以解決這個侷限:
1.在sublime text的安裝目錄下的Packages\目錄下找到Default.sublime-package,將這個複製出來,將字尾改名為zip。
是的,它就是個zip檔案,解壓縮它,然後將其中的exec.py檔案放到sublime text的Data\Packages\User\目錄下。
這裡寫圖片描述

這裡寫圖片描述

2.開啟exec.py.找到類ExecCommand的append_data函式,在以下位置新增程式碼。
這裡寫圖片描述
這種方式的原理就是在解碼輸出文字編碼出錯時再使用gbk試試,相當於utf-8和gbk兩種編碼都試試,這樣可以解決編碼錯誤的問題。

您可以任意轉載本文,但轉載時請勿刪除作者資訊。
作者:hgyxbll,原文連結:http://shashanzhao.com/archives/976.html

相關文章