计算机中常见的编码方式有多种,英文一般是ascii编码,其他有unicode,utf-8,gbk,utf-16等编码。

常见编码方式:

  • ASCII编码:ASCII是早期的编码,包含英文字母、数字和一些英文符号一共127个符号;
  • Unicode编码:不同的语言有各自不同的编码方式,导致在多种语言环境下按照某一种固定的编解码方式会出现乱码。为了统一,制定了Unicode编码。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了,一般使用两个字节表示一个字符。现代的操作系统和大多数编程语言都支持Unicode;
  • UTF-8编码:UTF-8是Unicode编码的一种存储和传输的方式。由于英文字符只需要占用一个字节的空间就够了,但如果统一采用Unicode的两个字节来表示,会浪费存储空间,增加传输消耗,UTF-8把Unicode编码转化成“可变长编码”,可以根据不同的符号变化字节的长度;
  • GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换;
  • GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码;
  • 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码,当文件被打开的时候,UTF-8字符被转换成Unicode字符到内存中,文件关闭的时候,再从Unicode转化成UTF-8保持到磁盘上,以节省(传输)空间。

python中的编码转化
python内部的字符串一般是Unicode编码,Unicode是utf-8、gbk等编码的父编码,这些子编码方式之间不能直接转化,需要先转化成Unicode,再转化成其他编码方式,Unicode作为转换的中间码。python中的解码(decode)是从子编码转换成Unicode编码,编码(encode)是从Unicode转其他子编码

查询字符串是否是Unicode编码

isinstance(str,unicode)

查询系统默认编码

import sys

print sys.getdefaultencoding()

编码转换

#!/usr/bin/env python
# -*- coding: utf-8 -*- import sys print sys.getdefaultencoding()
str = '中国'
str = str.decode('utf8')
print isinstance(str,unicode)
str = str.encode('gbk')
print isinstance(str,unicode)

python中的编码和解码的更多相关文章

  1. python中的编码与解码

      编码与解码 首先,明确一点,计算机中存储的信息都是二进制的   编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显 ...

  2. Python中的编码和解码问题

    关于Python中遇到的中文字符串的读取和输入时总是遇到一堆问题,到现在还不是特别明白,只是有了一个大概率的理解,就是:字符串是用什么编码格式编码的,就用什么编码格式来解码. encode()对字符串 ...

  3. Python中的编码与解码(转)

    Python中的字符编码与解码困扰了我很久了,一直没有认真整理过,这次下静下心来整理了一下我对方面知识的理解. 文章中对有些知识没有做深入的探讨,一是我自己也没有去深入的了解,例如各种编码方案的实现方 ...

  4. python中base64编码与解码

    在python3中用base64进行编码和解码的时候特别注意: 题目要求: 准备一张.jpg图片,比如:mm.jpg,读取图片数据并通过b85encode加密之后写入到新文件mm.txt文件中,然后读 ...

  5. Python 中 base64 编码与解码

    base64 是经常使用的一种加密方式,在 Python 中有专门的库支持. 本文主要介绍在 Python2 和 Python3 中的使用区别: 在 Python2 环境: Python 2.7.16 ...

  6. python中的编码问题:以ascii和unicode为主线

      1.unicode.gbk.gb2312.utf-8的关系 http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8 ...

  7. 【转】【Python】 python中的编码问题报错 'ascii' codec can't decode 及 URL地址获取中文

    1.unicode.gbk.gb2312.utf-8的关系 http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8是u ...

  8. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  9. 转 python3中SQLLIT编码与解码之Unicode与bytes

    #########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...

随机推荐

  1. Redis命令行之List

    一.Redis之List简介 1. List是简单的字符串列表,按照插入顺序排列. 2. 一个列表最多可存储232-1个元素(40多亿). 二.Redis之List命令行操作 Lrange:获取列表指 ...

  2. 树莓派用gobot测试舵机的使用

    package main import ( "gobot.io/x/gobot" "gobot.io/x/gobot/drivers/gpio" "g ...

  3. 【westorm系列之二】配置格式化

    1.执行格式化后,给句尾加分号

  4. 深究Spring中Bean的生命周期

    前言 这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了<Spring in action>这本书,书上 ...

  5. iOS开发 当前时间 时间戳 转换

    1.今天在做一个webservice的接口的时候,被要求传一个时间戳过去,然后就是开始在Google上找 2.遇到两个问题,一,当前时间转化为时间戳,二,获取的当前时间和系统的时间相差8个小时 一,转 ...

  6. OHIFViewer meteor build 问题

    D:\Viewers-master\OHIFViewer>meteor build --directory d:/h2zViewerC:\Users\h2z\AppData\Local\.met ...

  7. 【Todo】Java Callable和Future学习

    参考这篇文章:http://blog.csdn.net/ghsau/article/details/7451464  还有一个系列<Java多线程>

  8. 转:libev和libevent的设计差异

    转:http://www.cnblogs.com/Lifehacker/p/whats_the_difference_between_libevent_and_libev_chinese.html [ ...

  9. CVE-2014-4114 和 CVE-2014-3566

     这两天关注安全的人员都会特别留意这两个新披露的漏洞:CVE-2014-4114 和 CVE-2014-3566.以下我们就针对这两个漏洞最一些简要说明. CVE-2014-4114------- ...

  10. svn简单介绍

    版本号控制(Revision control)是维护project蓝图的标准做法,能追踪project蓝图从诞生一直到定案的过程.是一种记录若干文件内容变化.以便将来查阅特定版本号修订情况的系统. 能 ...