python的unicode_python的unicode及其编码解码
Unicode支持多种编码格式,这为程序员带来了额外的负担,每当你向一个文件写入字符串的时候,你必须定义一个编码用于把对应的Unicode内容转换成你定义的格式,Python通过Unicode字符串的encode()函数解决了这个问题,该函数接受字符串中的字符为参数,输出你指定的编码格式的内容。
所以,每次我们写一个Unicode字符串到磁盘上我们都要用指定的编码器给他“编码“一下,相应地,当我们从这个文件读取数据时,我们必须”解码”该文件,使之成为Unicode字符串对象。
简单的例子:
下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。
在Linux中编写,在VIM中输入如下代码,保存为uniFile.py #
/home/xiaopeng/python/code/uniFile.py
'''
An example of reading and writing Unicode strings:Writes
a Unicode string to a file in utf-8 and reads it back in
'''
CODEC = 'utf-8' 编码方式
FILE = 'unicode.txt' 要存的文件名
hello_out = u"Hello world\n" 创建了一个Unicode格式的字符串
bytes_out = hello_out.encode(CODEC) 用UTF-8编码
f = open(FILE,'w')
f.write(bytes_out) 写入指定文件中
f.close()
f = open(FILE,'r')
bytes_in = f.read() 读取
f.close()
hello_in = bytes_in.decode(CODEC) 解码
print hello_in 打印
在终端中输入:python uniFile.py
结果打印出 Hello world
然后我们在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.
把Unicode应用到实际中注意一下四点:
1 程序中出现字符串时一定要加一个前缀u
2 不要用str()函数,用Unicode()代替
3 不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。
4 不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。
python的unicode_python的unicode及其编码解码相关推荐
- Python 图片数据MYSQL存取(BASE64编码解码)
Python 图片数据MYSQL存取(BASE64编码解码) 1.相关python代码 #-*- coding:utf-8 -*-import pymysql import sys import ba ...
- python进制转换,unicode,ascii编码转换
一.各进制的字符串转10进制~ int('字符串',2[16|8]) #可以把进制形式的字符串按照2进制|16进制|8进制的方式转成10进制 例: int('79',16) 121int('01010 ...
- python 小数据池 is和 == 编码解码
########################总结######################### 今日主要内容 1. 小数据池, id() 小数据池针对的是: int, str, bool 在p ...
- Python爬虫:js的btoa和atob和pythonBase64编码解码比对分析
比对js和py的Base64编码解码,探求一个共通之处 javascript代码 对英文字符进行base64编码解码 var str = 'javascript';// 编码 btoa(str) // ...
- 字符编码在python中的处理_python 字符编码处理问题总结
Python中常常遇到这种字符编码问题,尤其在处理网页源代码时(特别是爬虫中): UnicodeDecodeError: 'XXX' codec can't decode bytes in posit ...
- 字符编码在python中的处理_Python 字符编码处理总结
Python中经常遇到这样那样的字符编码问题,尤其在处理网页源码时(特别是爬虫中): UnicodeDecodeError: 'XXX' codec can't decode bytes in pos ...
- GSM手机SMS编码解码
有两种方式,一有短信网关,二是通过SMS的DTE-DCE接口标准(AT命令集).我们来讨论一下At命令发送短信,下面是在Siemens M75验证. 一共有三种方式来发送和接收SMS信息:Block ...
- python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- python 字符串 编码 解码_Python 字符串编解码研究
Python 2.X 在输入汉字和特殊字符的时候,经常遇到编码解码的问题,究其原因,编译器默认将文件当做ascii编码,因此要正确的实现编解码的转换,需要进行一些设置. 首先让我们来了解几个概念. 文 ...
最新文章
- Javascript中undefined,NaN等特殊比较
- AI一分钟 |“最抢手”毕业生排名出炉:清华没进前三?支付宝将支持iPhone X刷脸
- virtualbox mac-debian共享文件夹
- Linux centos7防火墙firewalld相关操作
- leetcode881. 救生艇(贪心算法加双指针)
- bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...
- 使用JSSDK分享页面
- bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
- C# .NET与数据结构
- java 如何查看jdk版本位数
- JAVA读写之前,先进行一下可读,可写权限判断
- Could not get unknown property 'packageForR' for task ':app:processDebugReso
- 从零学会SQL:入门(实操演示)
- querydsl动态 sql_SpringDataJPA学习记录(四)--使用QueryDSL
- 简报 | 解决“无感停车”开票难题, 广州试水区块链停车发票
- Oracle,Sql,procedure 感觉自己写的很棒的一个存储过程
- 让电脑使用手机的摄像头做直播
- 几款笔记软件的优缺点
- 命运更喜欢将丰硕约果实馈赠给那些含着泪微笑的灵魂
- 博弈论(Nim游戏、有向图游戏之SG函数)