Python——Output not utf-8错误解决办法

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值