python中unicode编码表_python中的unicode编码
概括、从python1.6开始就可以处理unicode字符了。
一、几种常见的编码格式。
1.1、ascii,用1个字节表示。
1.2、UTF-8,用1个至三个字节表示,表示ascii码时只占用1个字节,ascii编码是UTF-8的子集。
1.3、UTF-16,用2个字节表示,在python中,unicode的含义就是UTF-16。
二、python源文件的编码与解码,我们写的python程序从产生到执行的过程如下:
编辑器---->源代码---->解释器---->输出结果
2.1、编辑器决定源代码的编码格式(在编辑器中设定)
2.2、也必须要解释器知道源代码的编码格式(很遗憾很难从编码的数据获知源文件的编码格式)
2.3、补充:在Windows下当用UltraEdit把源代码存成UTF-8时,会在文件中记录BOM标志(不必祥究)这样ActivePython解释器会自动识别源文件是UTF-8格式,但是如果用eclipse编辑源文件,虽然在编辑器中指定文件编码为UTF-8,但是因为没有记入BOM标志,所以必须在源文件开始处加上#coding=utf-8,用注释来提示解释器源文件的编码方式挺有意思。
2.4、举例:例如我们要向终端输出"我是中国人"。
#coding=utf-8 告诉python解释器用的是utf-8编码,我用的是eclipse+pydev
print "我是中国人" #源文件本身也要存成UTF-8编码
2.5、当然我们可以用其他unicode编码,例如GB2312,SHIFT_JIS等等,但是建议用UTF-8,表示的字符更多,例如能同时显示中文和日文字符。
三、编码的转换,两种编码的转换要用UTF-16作为中转站。
举例:如果有一个文本文件jap.txt,里面有内容 "私は中国人です。",编码格式是日文编码SHIFT_JIS,
还有一个文本文件chn.txt,内容是"中华人民共和国",编码格式是中文编码GB2312。
我们如何把两个文件里的内容合并到一起并存储到utf.txt中并且不显示乱码呢,可以采用把两个文件的内容都转成UTF-8格式,因为UTF-8里包含了中文编码和日文编码。
#coding=utf-8
try:
JAP=open("e:/jap.txt","r")
CHN=open("e:/chn.txt","r")
UTF=open("e:/utf.txt","w")
jap_text=JAP.readline()
chn_text=CHN.readline()
#先decode成UTF-16,再encode成UTF-8
jap_text_utf8=jap_text.decode("SHIFT_JIS").encode("UTF-8") #不转成utf-8也可以
chn_text_utf8=chn_text.decode("GB2312").encode("UTF-8")#编码方式大小写都行utf-8也一样
UTF.write(jap_text_utf8)
UTF.write(chn_text_utf8)
except IOError,e:
print "open file error",e
四、Tk库支持ascii,UTF-16,UTF-8
#coding=utf-8
from Tkinter import *
try:
JAP=open("e:/jap.txt","r")
str1=JAP.readline()
except IOError,e:
print "open file error",e
root=Tk()
label1=Label(root,text=str1.decode("SHIFT_JIS")) #如果没有decode则显示乱码
label1.grid()
root.mainloop()
五、字符串相关
1、默认情况下字符串的编码格式和源码的编码格式一致。
2、如果在字符串前面加上u,则字符串会采用unicode编码。
python中unicode编码表_python中的unicode编码相关推荐
- python的unicode编码表_python中Unicode编码初探
上一篇文章主要讨论了字符编码的不同方式,这一篇文章着重谈谈对python的编码解码的理解. python2 在python2中主要有两种类型的字符类型,一个是str,一个是Unicode.平时我们默认 ...
- python中unicode编码表_Python中的字符串操作和编码Unicode详解
本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符 ...
- UniCode编码表,过滤不可见特殊字符
不可见字符过滤方案 我是在项目中,使用freemarker生成word时,wordxml不能解析不可见字符,导出导出的word报错,不能正常打开. 于是我将freemarker解析后的xml进行了不可 ...
- [转] UniCode编码表
Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含了世界上所有的语言字符,它也就成为了全世界一种通用的编码,而且用十六进制4位表示一个编码,非常简结直观,为大多数开发者所 ...
- Unicode编码表/0000-0FFF
Unicode编码表/0000-0FFF 图例: Unicode 3.1 Unicode 1.0 Unicode 3.2 Unicode 1.1 Unicode 4.0 Unicode 2.0 Uni ...
- 【Unicode编码表】UniCode编码表+转化器
UniCode编码表[转载:https://www.cnblogs.com/csguo/p/7401874.html] Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含 ...
- punycode转码以及UniCode编码表参考文章
Punycode是什么? Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码.Punycode可以防止ID ...
- 汉字Unicode编码表(最小值0x4e00,最大值0x952f)
汉字的unicode编码最小值为:0x4e00,最大值为0x952f 关于 unicode编码表: 1unicode编码表 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, ...
- CSS中文字体 Unicode 编码表
一.简介 CSS(层叠样式表)是用于样式化Web页面的强大工具,它可以用来控制页面的外观和行为.在CSS中,可以使用多种字体来设置文本的外观和格式,包括中文字体.中文字体的实现需要引入相应的字体文件, ...
- charCodeAt() 方法了解和用法unicode编码表
前言:最近在看一些算法题,发现有时候借用到charCodeAt方法,所以趁此机会来学习一下(●ˇ∀ˇ●) 什么是charCodeAt? MDN的解释: charCodeAt() 方法返回 0 到 65 ...
最新文章
- 【前沿科技】云计算军事运用有啥特点
- SVG与UML图详解
- 基于 Python Matplotlib 模块的高质量图形输出
- Uva 11572 唯一的雪花
- socket发送请求,协程
- winform程序打包成exe文件
- Android之集成友盟推送功能
- Android之shape属性详解
- Java的数据库编程之入门案例
- 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级
- iOS 如何使用 Block
- 前阿里财务人告诉你:抛弃Excel,原来报表竟然还能这么快
- jupyter notebook常用命令
- JDBC系列 之 JDBC层次结构和基本构成
- 清理C盘——这个操作让你的C盘多出20G空间
- 【软件-ACDSee】图像合并为TIFF
- ADCS relay
- 南京信息工程大学计算机科学与技术评级,晋升ESI排名全球前1‰,南京信息工程大学这个学科不简单!...
- Apache服务器下载安装及使用(更新)
- 华师大计算机基础在线作业,华东师范大学计算机作业答案
热门文章
- 大数据入门:Hadoop大数据开发核心讲解
- 刷课在线支付系统(新手入门编写,大佬勿喷)
- 北理在线作业答案c语言,北理乐学C语言答案,最新.doc
- 新建UE4 c++类
- 自动化所宗成庆研究员:108页PPT干货读懂NLP的过去与现在!(附教材PPT)
- 全面理解ADMM算法
- xp win7 linux 三系统下载,打造xp+linux+win7三系统教程.doc
- R语言实战 R语言读取不同文件类型中数据的4种方法
- linux版gaussian运行,【求助】gaussian 在linux不能运行?急急急 - 量子化学 - 小木虫 - 学术 科研 互动社区...
- 蓝屏,BAD_SYSTEM_CONFIG_INFO,0x00000074故障