文档章节

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
南昌
私信 提问
机器学习的最佳学习路线原来只有四步

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

ufv59to8
2018/05/12
0
0
新课上线|Python实现图片拼接与混合、XML-RPC文件共享程序等

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

moy37rqw1jarn33bgzk
2018/05/12
0
0
编程语言太难学?只因你还没试过Python!

Python语言可能是第一种即简单又功能强大的编程语言。它不仅适合于初学者,也适合于专业人员使用,更加重要的是,用Python编程是一种愉快的事。本身将帮助你学习这个奇妙的语言,并且向你展示...

极客学院
2015/05/18
2.1K
7
一个月入门Python爬虫,快速获取大规模数据

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

Python开发者
2018/04/25
0
0
程序员精选:TensorFlow和ML前5名的课程

如果你对人工智能、数据科学和机器学习感到好奇,那么我相信你已经听说过Google的机器学习API ——TensorFlow,他们已经用它来为Google搜索开发Rank Brain算法。TensorFlow是最受欢迎的机器学...

【方向】
2018/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
0
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
1
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linuxCool
昨天
6
0
协议简史:如何学习网络协议?

大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应。并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背。 考试的时候,果然遇到这个问题,搜索枯肠,只能想...

Java干货分享
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部