`

Python的ASCII, GB2312, Unicode , UTF-8

阅读更多

ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127

Unicode分为UTF-8和UTF-16。UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。

Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换函数 encode( char_set )实现 Unicode 到其它编码方式的转换

比如 ("你好").decode( "GB2312") 将得到 u'\u4f60\u597d',即 "你"和“好"的 Unicode 码分别是 0x4f60 和 0x597d
再用 (u'\u4f60\u597d').encode("UTF-8") 将得到 '\xe4\xbd\xa0\xe5\xa5\xbd',它是  “你好”的UTF-8编码结果。


python中使用 unicode的关键:unicode是一个类,函数unicode(str,"utf8")从utf8编码(当然也可以是别的编码)的字符串str生成 unicode类的对象,而函数unc.encode("utf8")将unicode类的对象unc转换为(编码为)utf8编码(当然也可以是别的编码)的字符串。于是,编写unicode相关程序,需要做的事情是

    * 获取数据(字符串)时,用unicode(str, "utf8")生成unicode对象
    * 在程序中仅使用unicode对象,对程序中出现的字符串常量都以u"字符串"的形式书写
    * 输出时,可将unicode对象转换为任意编码输出,使用str.encode("some_encoding")

>>> unicode("你好", "utf8")
u'\u4f60\u597d'
>>> x = _
>>> type(x)

>>> type("你好")

>>> x.encode("utf8")
'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> x.encode("gbk")
'\xc4\xe3\xba\xc3'
>>> x.encode("gb2312")
'\xc4\xe3\xba\xc3'
>>> print x
你好
>>> print x.encode("utf8")
你好
>>> print x.encode("gbk")
???

以上是测试结果(Ubuntu 6.06,locale为utf8),注意type(x)和type("你好")的区别。从编码上可以看出utf8编码与gbk不同。在utf8的 locale设置下,打印x按该环境变量编码(我猜我猜我猜猜猜),而打印x.encode("gbk")则是乱码。

 

 

 

原文:http://1.vb.blog.163.com/blog/static/104546220071113105047729/

分享到:
评论

相关推荐

    utf-8 互转 gb2312 转码

    首先,我们需要将UTF-8编码的字符串解码为Unicode,然后将Unicode转换为GB2312编码。反之,从GB2312转到UTF-8也是同样的逻辑,只是方向相反。 在Python编程语言中,我们可以使用`encode()`和`decode()`方法进行转码...

    编码查询 各种文本转到 unicode utf-8 gb2312 编码 unicode utf-8 gb2312 编码转换到文字

    例如,如果你有一个使用GB2312编码的文本文件,而你希望将其转换为UTF-8,可以使用文本编辑器(如Notepad++)或者编程语言(如Python的`codecs`库)来实现。反之,如果要将Unicode(如UTF-8编码的文本)转换成GB2312...

    UNICODE与UTF-8转换

    在某些编程语言中,如Python,可以使用内置的函数实现转换,如`str.encode('utf-8')`将UNICODE字符串转换为UTF-8,`str.decode('utf-8')`将UTF-8字符串解码回UNICODE。 **五、实际应用** 在处理文本数据时,了解...

    UTF-8与GB2312之间的互换类.rar_ UTF-8toGB2312_UTF-8 GB2312_gb2312_mmi_ch

    标题中的"UTF-8与GB2312之间的互换类.rar_ UTF-8toGB2312_UTF-8 GB2312_gb2312_mmi_ch"指的是一个能够帮助开发者在UTF-8和GB2312两种编码格式之间进行转换的程序类库。这个压缩包可能包含了源代码文件,使得用户可以...

    ASCII 及UTF-8 与字符互相转换

    ASCII 和 UTF-8 是两种广泛使用的字符编码标准,它们在计算机科学中扮演着重要的角色,尤其是在文本处理和数据传输方面。这两个编码系统都是为了将人类可读的字符转化为计算机可以理解的形式,但它们的设计和使用...

    字符转码,gb2312 usc2 ,utf-8

    本篇文章将详细探讨标题和描述中提到的“gb2312”,“usc2”以及“utf-8”这三种字符编码格式。 首先,我们来了解一下GB2312编码。GB2312,全称“汉字国标交换码”,是中国国家标准的简体中文字符集,主要用于中国...

    GB2312UTF-8字符互转

    在处理中文字符时,我们经常遇到不同的字符编码标准,如GB2312和UTF-8。这两种编码方式在处理中文字符时各有特点,有时需要进行相互转换。 GB2312(全称为“汉字编码字符集国家标准”,又称GB2312-80)是中国大陆...

    UTF-8.rar_utf_utf gb2312_utf 转换_utf-8_utf-8解码

    本文将深入探讨UTF-8和GB2312这两种字符编码,并解释它们之间的转换过程以及相关的解码技术。 首先,UTF-8是一种广泛使用的Unicode字符编码方式。它能够表示Unicode字符集中所有的字符,包括汉字、拉丁字母、希腊...

    GB2312转换UTF_8编码字符_Dll_gb_

    例如,读取GB2312编码的文件时,应先将其解码为Unicode,然后再用UTF-8编码写入新的文件。同时,处理文本数据时,要确保所有相关的程序和系统都支持目标编码,否则可能会遇到不兼容的问题。 总之,GB2312和UTF-8是...

    gb2312编码转utf-8编码

    3. **转换编码**:使用编程语言提供的函数或库,如Python的`codecs`模块,将GB2312字节序列解码为Unicode字符串,再将该字符串按照UTF-8编码规则重新编码为字节序列。 4. **写入新文件**:最后,将转换后的字节序列...

    判断文本文件是否为UTF-8编码

    UTF-8是一种广泛使用的字符编码标准,能够表示Unicode字符集中的所有字符,包括各种语言的字母、数字和特殊符号。本资源主要关注如何判断一个文本文件是否采用UTF-8编码。 在Windows系统中,比如Windows 7旗舰版,...

    字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的?(....rar

    本文将深入探讨Unicode、UTF-8、ASCII以及GB2312等编码系统,并阐述它们之间的转换方式。 首先,我们从最基础的ASCII编码说起。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码...

    gb2312到utf8的转换

    从GB2312转换到UTF-8,首先需要识别GB2312编码的每个双字节对,然后根据Unicode对应关系找到对应的Unicode码点。因为UTF-8是变长编码,所以不同的Unicode码点会被转换为不同数量的字节。对于GB2312中的汉字,它们...

    UTF-8中文字符表

    3. **软件开发**:编程语言如Java、Python等内置对UTF-8的支持,方便开发者处理多语言文本数据。 #### 六、总结 UTF-8作为全球最流行的字符编码标准之一,在互联网时代扮演着至关重要的角色。通过本篇文章的学习,...

    Python3编码问题 Unicode utf-8 bytes互转方法

    注意在Python 3中,对于非ASCII字符,默认使用的是UTF-8编码: ```python u_cn = '中文asd123' hex_msg = bytes(u_cn, encoding='utf_16_be').hex() print(hex_msg) # 输出: 'fffe4e2d0065006e0063006f***' ``` 在...

    UTF-8编码转BIG5、gb2312

    例如,在Python中,可以使用`encode`和`decode`方法来实现编码间的转换,如`str.encode('utf-8').decode('gb2312')`。 在实际操作中,需要注意的是,转换过程可能会丢失一些无法映射到目标编码中的字符。因此,确保...

    xml.rar_UTF XML_UTF-8编码_utf_utf-8_xml utf-8

    UTF-8的特性是它对ASCII字符集的兼容性,其中英文字符只用一个字节表示,其他语言和特殊字符则可能需要多个字节。这种编码方式使得XML文件在不同系统和语言环境中具有良好的兼容性。 XML文档的编码声明是至关重要的...

    Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题

    ### Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题 #### 一、背景介绍 在处理包含非英文字符的数据时,尤其是使用 Python 的 `csv` 模块来操作 CSV 文件时,可能会遇到字符编码问题,导致中文等非英文...

    UTF-8GB2312互转

    在提供的"UTF-8GB2312互转.exe"文件中,很可能是实现了一个简单的命令行工具,用于快速将UTF-8编码的文件转换为GB2312,或者反之。使用这样的工具,用户可以在本地环境下方便地解决文件编码不匹配导致的乱码问题。但...

Global site tag (gtag.js) - Google Analytics