1、字符串编码设置

data = u'你好'
utf8 = data.encode('utf-8')

2、管道编码设置

import locale
import sys ###设置输出管道编码###
text = u'pi:π'
locale.setlocale(locale.LC_ALL, '') #恢复系统默认
lang, encoding = locale.getdefaultlocale() #获取系统默认设置(或用户设置)过的lang、encoding
print 'Locale lang: ', lang
print 'Locale encoding: ', encoding
sys.stdout = codecs.getwriter(encoding)(sys.stdout) #将输出管道的编码设置为刚刚获取到的默认encoding
print 'Print with wrapped stdout: ', text ###设置输入管道编码###
locale.setlocale(locale.LC_ALL, '')
lang, encoding = locale.getdefaultlocale()
sys.stdin = codecs.getreader(encoding)(sys.stdin) #注意这里是getreader()
print 'From stdin:'
print repr(sys.stdin.read())

3、文件、字符串写入读取编码转换设置

# -*- coding:utf-8 -*-
import sys
import codecs reload(sys)
sys.setdefaultencoding('utf-8')
data = u'你好'
utf8 = data.encode('utf-8')
print utf8
with codecs.open('file1.txt', 'w', 'utf-8') as f:
encoded_file = codecs.EncodedFile(f, data_encoding='utf-8', file_encoding='utf-8')
encoded_file.write(utf8)
with codecs.open('file1.txt', 'r', 'utf-8') as f:
encoded_file = codecs.EncodedFile(f, data_encoding='gbk', file_encoding='utf-8')
print encoded_file.read()

 注意:codecs.EncodedFile(file, data_encoding, file_encoding=None, errors='strict')

  该函数返回一个StreamRecoder对象,主要提供一个透明转换两种编码的机制。当数据将要写文件时,要先经过data_encoding进行解码,接着进行file_encoding编码,最后把数据写入到文件。当要从文件读取数据时,先经过file_encoding进行解码,接着进行data_encoding编码,最后把数据交给使用者。

  如果file_encoding不存在,默认是使用data_encoding来替换。

  errors是错误的处理方式,默认是strict处理方式,如果不能处理会抛出异常ValueError。

python编码,三个编码实例的更多相关文章

  1. python第三天基础之字符编码

    一 了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...

  2. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  3. python语言中的编码问题(续)

    上文提到了python开发中非常重要的两处设置. 一个是编解码器的默认设置defaultencoding >>> import sys >>> sys.getdef ...

  4. python语言中的编码问题

    在编程的过程当中,常常会遇到莫名其妙的乱码问题.很多人选择出了问题直接在网上找答案,把别人的例子照搬过来,这是快速解决问题的一个好办法.然而,作为一个严谨求实的开发者,如果不从源头上彻底理解乱码产生的 ...

  5. 第1章 Python基础之字符编码

    阅读目录 一.什么是字符编码 二.字符编码分类 三.字符编码转换关系 3.1 程序运行原理 3.2 终极揭秘 3.3 补充 总结 回到顶部 一.什么是字符编码 计算机要想工作必须通电,也就是说'电'驱 ...

  6. Python中进行Base64编码和解码

    Base64编码 广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容 ...

  7. Python基础之字符编码

    前言 字符编码非常容易出问题,我们要牢记几句话: 1.用什么编码保存的,就要用什么编码打开 2.程序的执行,是先将文件读入内存中 3.unicode是父编码,只能encode解码成其他编码格式 utf ...

  8. python注释方法以及编码问题

    一.单行注释 在python中常使用"#"来进行单行注释,其快捷键为"ctrl+/",如果要对多行代码也就是代码块进行注释时,也可以选中多行按下 "c ...

  9. python 基础之字符编码和文件处理

    一.字符编码 (1)计算机基础知识 (2)python 解释器执行py文件的原理 <1>python 解释器启动 <2>python解释器相当于一个文本编辑器,打开txt.py ...

  10. Python系列之 - 字符编码问题

    1.内存和硬盘都是用来存储的. CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编 ...

随机推荐

  1. Centos7.7安装expect命令工具

    简单介绍 expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预.说白了,expect就是一套用来实现自动交互功能的软件. 在实际工作中,我们运行命令.脚本或程序时,这些命令.脚本 ...

  2. mysql 利用 case 批量更新

  3. jmeter连接mysql数据库进行多条语句查询

    前提工作: 1.在jmeter官网下载jmeter包(官网地址:https://jmeter.apache.org/).此外还需下载mysql驱动包,如:mysql-connector-java-5. ...

  4. Windows下Pycharm安装Tensorflow:ERROR: Could not find a version that satisfies the requirement tensorflow

    今天在Windows下通过Pycharm安装Tensorflow时遇到两个问题: 使用pip安装其实原理都相同,只不过Pycharm是图形化的过程! 1.由于使用国外源总是导致Timeout 解决方法 ...

  5. 消息中间之ActiveMQ

    一.JMS (JAVA Message Service) 1. JMS基本概念 JMS(JAVA Message Service,java消息服务)是java的消息服务,JMS的客户端之间可以通过JM ...

  6. linux基础_用户组的管理

    1.创建组 语法:groupadd 组名 2.删除组 语法:groupdel 组名 3.创建用户时,直接指定组 语法:useradd -g 用户组 用户名 4.修改用户的组 语法:usermod -g ...

  7. Maven打Dubbo可执行Jar

    POM文件中添加如下配置: <build> <finalName>test-jar</finalName> <resources> <resour ...

  8. service worker在移动端H5项目的应用

    1. PWA和Service Worker的关系 PWA (Progressive Web Apps) 不是一项技术,也不是一个框架,我们可以把她理解为一种模式,一种通过应用一些技术将 Web App ...

  9. 在js中获取 input checkbox里选中的多个值

    思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表示未选中).下面进行实例演示: 1.html中展示: <input type=& ...

  10. Java8-Stream-No.08

    import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public c ...