`
Lives
  • 浏览: 201458 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【转】Python字符串的编码与解码(encode与decode)

阅读更多

首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

例如:ljq.py,编码为utf8,包含内容如下:

复制代码
#-*-coding:utf-8-*- 

s='中文'
print type(s) #查看s的字符类型
print s  

s.decode('utf8') #解码utf8,默认的编码方式是unicode
s.decode('gbk', "ignore") #解码utf8,忽略其中有异常的编码,仅显示有效的编码
s.decode('gbk', 'replace')
print type(s)
print s

s.encode('gb2312') ##编码为utf8
print type(s)
print s
复制代码

ljq.py编码必需与s.decode('utf8')指定的编码一致,不然会抛出解码异常信息,可以通过s.decode("gbk", "ignore")或s.decode("gbk", "replace")来解决。

另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置。如:
s.decode("utf-8", "ignore") 忽略其中有异常的编码,仅显示有效的编码
s.decode("utf-8", "replace") 替换其中异常的编码,这个相对来可能一眼就知道那些字符编码出问题了。

从unicode转str,被看做是把一个信息文本编码为二进制字节流的过程,要用encode方法

分享到:
评论

相关推荐

    Python字符串的encode与decode研究.pdf

    Python 字符串的 encode 与 decode 研究 Python 中的字符串编码问题是非常常见的,很多开发者在处理字符串时会遇到乱码问题。这个问题的根源是 Python 字符串的内部表示是 Unicode 编码,而在编码转换时需要以 ...

    Python 字符串深度总结_Python 字符串深度总结

    本文将对Python字符串进行深入探讨,涵盖其基本概念、操作方法以及高级特性。 一、字符串定义与创建 在Python中,字符串是由单引号或双引号括起来的字符序列。例如: ```python str1 = 'Hello, World!' str2 = ...

    Python2与Python3关于字符串编码处理的差别总结

    在Python2中,当你尝试打印一个字节字符串时,Python会尝试使用系统默认的编码进行解码,如果该编码与字节字符串的实际编码不匹配,就可能出现乱码。而在Python3中,print语句会自动处理字符串的编码和解码,确保...

    字符串和base64的编码与解码

    在上述代码中,`encode('utf-8')`用于将字符串转换为UTF-8编码的字节,`decode('ascii')`则是为了将Base64编码的字节转换回字符串。这样,我们就可以在保持数据完整性的前提下,轻松地在字符串和Base64编码之间进行...

    Python字符串相关操作的整理

    `encode()`方法用于将字符串编码为字节序列,`decode()`则用于将字节序列解码回字符串。两者都需要指定编码格式,如UTF-8,GBK等,以确保正确处理各种字符。 最后,值得注意的是,**Python字符串是不可变的**,这...

    Python3字符串encode与decode的讲解

    # 尝试将字符串解码为UTF-8格式 try: name2 = name.decode('utf-8') except AttributeError as e: print(e) # 正确的方式:将UTF-8格式的字节码解码回字符串 name2 = name1.decode('utf-8') print(type(name2)) ...

    base64-编码解码工具-python实现源码

    使用`b64encode()`函数,你可以将任何二进制数据(如字节串)转换成Base64编码的字符串。例如: ```python import base64 binary_data = b'Hello, World!' encoded_data = base64.b64encode(binary_data) ...

    Python之字符串和编码共13页.pdf.zip

    Python字符串类有许多内置方法,如`lower()`、`upper()`用于大小写转换,`find()`、`index()`用于查找子串位置,`startswith()`、`endswith()`检查字符串是否以特定前缀或后缀开始或结束。 通过理解并熟练掌握上述...

    完整版 零基础学Python课件05 第5章 字符串及表达式.ppt

    Python字符串及表达式详解 Python中的字符串是一种基本的数据类型,用于存储文本信息。在Python中,字符串可以使用单引号、双引号或三引号来表示。字符串可以进行各种操作,如字符串连接、字符串分割、字符串检索、...

    字符编码解码工具字符编码,解码

    `encode()`函数用于将字符串编码为字节,而`decode()`函数则用于将字节解码为字符串。在Java中,`java.nio.charset`包提供了类似的函数,如`CharsetEncoder`和`CharsetDecoder`。 字符编码解码工具的设计往往注重...

    03-Python数据类型-字符串

    可以使用 encode() 方法进行编码,使用 decode() 方法进行解码。字符串是Python编程中不可或缺的部分,掌握字符串的操作对于编写Python程序至关重要。字符串定义时,可以使用续行符,在代码编辑器中进行换行。在...

    精品课件 Python从入门到精通 第7章 字符串(共17页).ppt

    学习Python字符串是编程基础的重要部分,它涉及到文本处理、数据解析、日志记录等多个领域。熟练掌握字符串操作能够提高代码的效率和可读性,为后续的编程工作打下坚实的基础。在实际应用中,结合其他Python内置函数...

    Python字符编码转码之GBK,UTF8互转

    例如,将UTF-8编码的字符串转换为GBK编码,需要先用`decode()`函数将其解码为Unicode,然后再用`encode()`函数编码为GBK。以下是一个例子: ```python s = "我是学员" # UTF-8编码的字符串 s_to_unicode = s.decode...

    Encode_ Decode Tools URL编码解码工具

    `Encode_ Decode Tools`是一款用于URL编码和解码的工具,它可以帮助开发者和用户方便地处理这些编码问题。这款工具可能提供了简单的用户界面,允许用户输入URL或字符串,然后点击按钮进行编码或解码操作。它支持对...

    Python字符串的encode与decode研究心得乱码问题解决方法

    字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。  decode的作用是将...

    Python3中编码与解码之Unicode与bytes的讲解

    在Python3中,字符串默认使用Unicode编码。 - **Byte**:在计算机中,数据是以字节(Byte)的形式存储的。一个字节通常包含8位二进制数字。 - **编码(Encoding)**:将Unicode字符转换为特定编码的字节序列的过程。...

    Python3字符串学习教程

    - **编码与解码**:可以通过 `.encode()` 和 `.decode()` 方法转换字符串的编码。 #### 示例代码 ```python s = 'Hello World' print(len(s)) # 输出 11 print(s.find('o')) # 输出 4 print('o' in s) # 输出 True...

    python编码汇总

    例如,`s = "你好".encode('gbk')` 会将中文字符串按照 GBK 编码,而 `s.decode('gbk')` 又可以将其解码回原来的字符串。 "python批量转换编码.doc" 可能涉及批量处理文件或字符串的编码转换。在处理大量文本文件时...

    学学Python_字符串04_字符串方法01

    - `str.encode([encoding[, errors]])` 和 `str.decode([encoding[, errors]])`: 对字符串进行编码和解码,常用于处理不同的字符编码,如UTF-8。 以上所述的知识点在提供的文件中可能有具体的示例实现,如`...

Global site tag (gtag.js) - Google Analytics