文档章节

python学习——基础(二)

 随性_
发布于 2015/10/16 15:34
字数 441
阅读 84
收藏 3

编码(encode):unicode转化为str类型

解码(decode):将str类型转化为unicode

在python脚本中添加如下这行:

#! /usr/bin/env python   
# -*- coding: utf-8 -*-

脚本按所设置的编码类型进行保存和读取;

注:# -*- coding: utf-8 -*- 必须放在第一行或者第二行;

# /usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'syc'


print '中文'.encode('utf-8')


结果:

Traceback (most recent call last):
  File "F:/hz_viking/PycharmProjects/django_demo/WebBase/WebBase/unicodePy.py", line 6, in <module>
    print '中文'.encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

原因:'中文'是str类型的;当进行编码的时候,python 就会使用 sys.defaultencoding 指明的方式来解码,然后再进行编码;sys.defaultencoding默认是 ascii编码;所以就会出现ordinal not in range(128);

解决办法:

1.

# /usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'syc'


print '中文'.decode('utf-8').encode('utf-8')

先进行utf-8解码成unicode;然后再进行编码;


2.修改defaultencoding值

# /usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'syc'

import sys
reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入
sys.setdefaultencoding('utf-8')


print '中文'.encode('utf-8')


# -*- coding: utf-8 -*-

sys.setdefaultencoding('utf-8') 
是两个不同的概念。
第一种:是指定当前程序文件的编码方式。即编译器在解析code是认为code是哪种编码方式。如果不像第一种那样指定,我们的程序中是不能以中文声明字符串的。
第二种:是指定了python的unicode类型使用何种编码来存储unicode字符串。如果不声明,默认使用ascii。

总结:在编码转换时首先要将该数据以文件定义的编码格式换成unicode码,再将这个unicode按制定的编码进行编码;




© 著作权归作者所有

共有 人打赏支持
粉丝 9
博文 16
码字总数 18722
作品 0
南昌
私信 提问
新课上线|Python实现图片拼接与混合、XML-RPC文件共享程序等

关注「实验楼」,每天分享一个项目教程 最近又上线了哪些新课程?快来看看吧~ 会 员 课 一、《Python3 实现图片拼接与混合》 课程来源:selfim 课程简介:本课程主要是利用 Python 的第三方...

moy37rqw1jarn33bgzk
05/12
0
0
机器学习的最佳学习路线原来只有四步

AI这个词相信大家都非常熟悉,近几年来人工智能圈子格外热闹,光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。 在机器学习领域,Python已...

ufv59to8
05/12
0
0
一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者
04/25
0
0
七步教你Python进行机器学习

网络上有很多Python学习资源和机器学习学习资源,对于一个新手而言,如何开始呢?本篇文章将教你七步学会使用Python进行机器学习。 万事开头难。面对纷繁万千的网络学习资源,不知如何下手,...

断桥残雪断桥残雪
2015/11/20
0
0
年薪40万,我用的是这套Python学习体系

随着Python语言再次回到计算机十大语言排行第一的宝座,不少人又有了向Python这块发展的趋势。 最近,有位神秘大咖泄露出了一份宝贵的学习方法,很多人学习后,在短时间内达到了年薪40万!看...

北北北乐
08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
50分钟前
0
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
1
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
2
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
2
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部