概括、从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格式,但是如果用e
clipse
编辑源文件,虽然在编辑器中指定文件编码为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官方的这篇HOWTO文档《Python中文本编码官方文件(howto-unicode)》详细地介绍了Unicode编码的基本知识以及Python对Unicode的支持,这对于深入理解Unicode编码机制以及处理常见的编码问题极为重要。...
标签“源码”暗示了这个话题可能涉及到编程和代码实现,可能讲解了如何在编程语言中使用Unicode编码来处理中文字符,例如Java、Python或C++。而“工具”标签则可能意味着存在某种工具或库,可以帮助开发者进行...
在编程语言中,如Python、Java等,都有内置对Unicode的支持,可以直接处理和操作Unicode编码的字符串。 了解并掌握中文Unicode编码表,对于从事IT行业的人员来说,无论是进行网页开发、数据处理还是软件设计,都是...
硬编码的unicode字符串通常可以直接在Python3中正确解析和显示,但网络爬虫获取或文件读取的unicode编码字符串可能需要通过特定的方法进行解码和再编码。在处理文件时,推荐使用`codecs`模块替代标准的`open`函数,...
在Python3中,字符串默认以Unicode编码,因此在大多数情况下,我们不需要特别处理Unicode。然而,当从某些源(如爬取的网页)获取数据时,可能会得到Unicode编码的列表,我们需要将其解码为可读的中文字符。以下是一...
### Python中的Unicode字符详解 #### 一、引言 在当今全球化的软件开发环境中,支持多种语言成为了一项基本需求。Python作为一种高级编程语言,在处理国际化文本方面具有强大的能力,尤其是在处理Unicode字符方面...
在Python编程中,网络爬虫是获取网页数据的重要工具,而处理Unicode编码是爬虫过程中常见的一环。Unicode是一种字符编码标准,包含了世界上大部分语言的字符,包括中文。当网络爬虫抓取到的网页数据是以Unicode编码...
- **示例3**:“了”、“我”、“人”等常用汉字均在文档中有所体现,它们的Unicode编码分别为`\u4e86`、`\u6211`、`\u4eba`。 #### Unicode编码的重要性 1. **跨平台兼容性**:由于Unicode编码标准的普及,无论是...
Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文...
"Unicode码转中文"这个主题,涉及到的是如何将Unicode编码转换为可显示的中文字符。Unicode是一种国际标准,它定义了一个统一的方式来表示世界上几乎所有的文字,包括中文。在计算机中,中文字符通常由多个字节组成...
本文将深入探讨“Unicode中简体中文编码”这一主题,以及它在实际应用中的意义和作用。 Unicode是一个国际标准,旨在为世界上所有字符提供一个统一的编码方案。它的目标是消除由于不同字符集(如ASCII、GB2312、Big...
国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。兼容GBK和GB2312字符集。
压缩包中的"常用汉字的Unicode码表.doc"文件很可能是一个详细的文档,列出了日常使用频率较高的汉字及其对应的Unicode编码。这个文档对于开发者来说是一个宝贵的参考工具,可以快速查找特定汉字的编码,尤其在处理...
总之,Unicode编码转换源码是关于在不同编码体系之间进行转换的程序,涉及Unicode码点和各种编码格式如UTF-8的交互。掌握这一技术有助于实现跨平台、跨语言的信息交换,对于构建全球化软件至关重要。通过深入理解...
- **检查文件内容**:确保文件中的文本确实为Unicode编码,可以通过查看文件或使用工具如Notepad++等来确认。 - **使用标准库**:尽可能使用Python的标准库来进行文件操作,这样可以避免许多潜在的问题。 #### 六、...
Python3中,字符串(str)默认为Unicode编码,而字节(bytes)用于存储原始字节数据。编码使用`encode()`函数,将str转换为bytes;解码使用`decode()`函数,将bytes转换回str。 在Python2中,有str和unicode两种字符串...
本文实例讲述了python实现unicode转中文及转换默认编码的方法。分享给大家供大家参考,具体如下: 一、在爬虫抓取网页信息时常需要将类似”\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8″转换为中文,实际上这是...
在抓取网页内容时,我们经常会遇到Unicode编码的问题,因为网页的编码方式多种多样,而Python默认处理字符串时使用的是Unicode编码。因此,如何将获取到的Unicode码正确转换为中文信息,是Python爬虫开发者必须掌握...