概括、从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编码相关推荐

  1. python的unicode编码表_python中Unicode编码初探

    上一篇文章主要讨论了字符编码的不同方式,这一篇文章着重谈谈对python的编码解码的理解. python2 在python2中主要有两种类型的字符类型,一个是str,一个是Unicode.平时我们默认 ...

  2. python中unicode编码表_Python中的字符串操作和编码Unicode详解

    本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符 ...

  3. UniCode编码表,过滤不可见特殊字符

    不可见字符过滤方案 我是在项目中,使用freemarker生成word时,wordxml不能解析不可见字符,导出导出的word报错,不能正常打开. 于是我将freemarker解析后的xml进行了不可 ...

  4. [转] UniCode编码表

    Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含了世界上所有的语言字符,它也就成为了全世界一种通用的编码,而且用十六进制4位表示一个编码,非常简结直观,为大多数开发者所 ...

  5. 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 ...

  6. 【Unicode编码表】UniCode编码表+转化器

    UniCode编码表[转载:https://www.cnblogs.com/csguo/p/7401874.html] Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含 ...

  7. punycode转码以及UniCode编码表参考文章

    Punycode是什么? Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码.Punycode可以防止ID ...

  8. 汉字Unicode编码表(最小值0x4e00,最大值0x952f)

    汉字的unicode编码最小值为:0x4e00,最大值为0x952f 关于 unicode编码表: 1unicode编码表   Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, ...

  9. CSS中文字体 Unicode 编码表

    一.简介 CSS(层叠样式表)是用于样式化Web页面的强大工具,它可以用来控制页面的外观和行为.在CSS中,可以使用多种字体来设置文本的外观和格式,包括中文字体.中文字体的实现需要引入相应的字体文件, ...

  10. charCodeAt() 方法了解和用法unicode编码表

    前言:最近在看一些算法题,发现有时候借用到charCodeAt方法,所以趁此机会来学习一下(●ˇ∀ˇ●) 什么是charCodeAt? MDN的解释: charCodeAt() 方法返回 0 到 65 ...

最新文章

  1. 【前沿科技】云计算军事运用有啥特点
  2. SVG与UML图详解
  3. 基于 Python Matplotlib 模块的高质量图形输出
  4. Uva 11572 唯一的雪花
  5. socket发送请求,协程
  6. winform程序打包成exe文件
  7. Android之集成友盟推送功能
  8. Android之shape属性详解
  9. Java的数据库编程之入门案例
  10. 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级
  11. iOS 如何使用 Block
  12. 前阿里财务人告诉你:抛弃Excel,原来报表竟然还能这么快
  13. jupyter notebook常用命令
  14. JDBC系列 之 JDBC层次结构和基本构成
  15. 清理C盘——这个操作让你的C盘多出20G空间
  16. 【软件-ACDSee】图像合并为TIFF
  17. ADCS relay
  18. 南京信息工程大学计算机科学与技术评级,晋升ESI排名全球前1‰,南京信息工程大学这个学科不简单!...
  19. Apache服务器下载安装及使用(更新)
  20. 华师大计算机基础在线作业,华东师范大学计算机作业答案

热门文章

  1. 大数据入门:Hadoop大数据开发核心讲解
  2. 刷课在线支付系统(新手入门编写,大佬勿喷)
  3. 北理在线作业答案c语言,北理乐学C语言答案,最新.doc
  4. 新建UE4 c++类
  5. 自动化所宗成庆研究员:108页PPT干货读懂NLP的过去与现在!(附教材PPT)
  6. 全面理解ADMM算法
  7. xp win7 linux 三系统下载,打造xp+linux+win7三系统教程.doc
  8. R语言实战 R语言读取不同文件类型中数据的4种方法
  9. linux版gaussian运行,【求助】gaussian 在linux不能运行?急急急 - 量子化学 - 小木虫 - 学术 科研 互动社区...
  10. 蓝屏,BAD_SYSTEM_CONFIG_INFO,0x00000074故障