`
blue_halo
  • 浏览: 86096 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

python中的unicode编码

    博客分类:
  • ruby
阅读更多

概括、从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-unicode)

    Python官方的这篇HOWTO文档《Python中文本编码官方文件(howto-unicode)》详细地介绍了Unicode编码的基本知识以及Python对Unicode的支持,这对于深入理解Unicode编码机制以及处理常见的编码问题极为重要。...

    Unicode中文编码对照表

    标签“源码”暗示了这个话题可能涉及到编程和代码实现,可能讲解了如何在编程语言中使用Unicode编码来处理中文字符,例如Java、Python或C++。而“工具”标签则可能意味着存在某种工具或库,可以帮助开发者进行...

    中文unicode编码表.rar

    在编程语言中,如Python、Java等,都有内置对Unicode的支持,可以直接处理和操作Unicode编码的字符串。 了解并掌握中文Unicode编码表,对于从事IT行业的人员来说,无论是进行网页开发、数据处理还是软件设计,都是...

    Python3的unicode编码转换成中文的问题及解决方案

    硬编码的unicode字符串通常可以直接在Python3中正确解析和显示,但网络爬虫获取或文件读取的unicode编码字符串可能需要通过特定的方法进行解码和再编码。在处理文件时,推荐使用`codecs`模块替代标准的`open`函数,...

    python3 unicode列表转换为中文的实例

    在Python3中,字符串默认以Unicode编码,因此在大多数情况下,我们不需要特别处理Unicode。然而,当从某些源(如爬取的网页)获取数据时,可能会得到Unicode编码的列表,我们需要将其解码为可读的中文字符。以下是一...

    PythonUnicode字符1

    ### Python中的Unicode字符详解 #### 一、引言 在当今全球化的软件开发环境中,支持多种语言成为了一项基本需求。Python作为一种高级编程语言,在处理国际化文本方面具有强大的能力,尤其是在处理Unicode字符方面...

    网络爬虫-如何将爬取的Unicode码转换为中文信息-Python实例源码.zip

    在Python编程中,网络爬虫是获取网页数据的重要工具,而处理Unicode编码是爬虫过程中常见的一环。Unicode是一种字符编码标准,包含了世界上大部分语言的字符,包括中文。当网络爬虫抓取到的网页数据是以Unicode编码...

    最全的常用汉字Unicode码表

    - **示例3**:“了”、“我”、“人”等常用汉字均在文档中有所体现,它们的Unicode编码分别为`\u4e86`、`\u6211`、`\u4eba`。 #### Unicode编码的重要性 1. **跨平台兼容性**:由于Unicode编码标准的普及,无论是...

    Python 如何将爬取的Unicode码转换为中文信息 Python源码

    Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文信息 Python源码Python 如何将爬取的Unicode码转换为中文...

    unicode码转中文

    "Unicode码转中文"这个主题,涉及到的是如何将Unicode编码转换为可显示的中文字符。Unicode是一种国际标准,它定义了一个统一的方式来表示世界上几乎所有的文字,包括中文。在计算机中,中文字符通常由多个字节组成...

    unicode中简体中文编码

    本文将深入探讨“Unicode中简体中文编码”这一主题,以及它在实际应用中的意义和作用。 Unicode是一个国际标准,旨在为世界上所有字符提供一个统一的编码方案。它的目标是消除由于不同字符集(如ASCII、GB2312、Big...

    Unicode汉字编码表.doc

    国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。兼容GBK和GB2312字符集。

    常用的中文Unicode码表

    压缩包中的"常用汉字的Unicode码表.doc"文件很可能是一个详细的文档,列出了日常使用频率较高的汉字及其对应的Unicode编码。这个文档对于开发者来说是一个宝贵的参考工具,可以快速查找特定汉字的编码,尤其在处理...

    Unicode编码转换源码

    总之,Unicode编码转换源码是关于在不同编码体系之间进行转换的程序,涉及Unicode码点和各种编码格式如UTF-8的交互。掌握这一技术有助于实现跨平台、跨语言的信息交换,对于构建全球化软件至关重要。通过深入理解...

    Python读写unicode文件的方法

    - **检查文件内容**:确保文件中的文本确实为Unicode编码,可以通过查看文件或使用工具如Notepad++等来确认。 - **使用标准库**:尽可能使用Python的标准库来进行文件操作,这样可以避免许多潜在的问题。 #### 六、...

    20180530_Python编码及中文乱码1

    Python3中,字符串(str)默认为Unicode编码,而字节(bytes)用于存储原始字节数据。编码使用`encode()`函数,将str转换为bytes;解码使用`decode()`函数,将bytes转换回str。 在Python2中,有str和unicode两种字符串...

    python实现unicode转中文及转换默认编码的方法

    本文实例讲述了python实现unicode转中文及转换默认编码的方法。分享给大家供大家参考,具体如下: 一、在爬虫抓取网页信息时常需要将类似”\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8″转换为中文,实际上这是...

    Python代码源码-实操案例-框架案例-如何将爬取的Unicode码转换为中文信息.zip

    在抓取网页内容时,我们经常会遇到Unicode编码的问题,因为网页的编码方式多种多样,而Python默认处理字符串时使用的是Unicode编码。因此,如何将获取到的Unicode码正确转换为中文信息,是Python爬虫开发者必须掌握...

Global site tag (gtag.js) - Google Analytics