python 字符编码 转换
#!/bin/env python
#-*- encoding=utf8 -*-
# 文件头指定utf8编码还是乱码时,使用下面方式指定 # fix encoding problem
import sys
reload(sys)
sys.setdefaultencoding('utf8') # 设置编码
sys.getdefaultencoding() # 获取编码 ------------------------------------------------------- sys.path.append('../') # 设置路径
#coding=utf-8 s='中文'
if(isinstance(s, str)):
#s为u'中文'
s.encode('gb2312')
else:
#s为'中文'
s.decode('utf8').encode('gb2312')
python 内部使用unicode表示字符串,自然当需要编码转换时,要用unicode作为中间“中间编码”,
eg:
gbk转utf-8时,
gbk --> unicode --> utf-8
分解为两个步骤:
1. gbk --> unicode
python语法:字符串.decode('gbk')
2. unicode --> utf-8
python语法: 字符串.decode('gbk').encode('utf-8')
对于已经是Unicode编码的字符串,可以直接encode,而不能decode了。这种情况下,需要代码给出判断,
可以使用python __builtin__.py中提供的函数:isinstance() 去判断python范围内的任何“类型”,当然也
可以判断是不是unicode:
if isinstance(yourchar, unicode):
communicate = yourchar.encode('utf-8') #直接编码成utf-8格式
else :
# 此处没有进行过测试,如果出错可以直接使用: communicate = yourchar.decode('你当前的编码类型', errors='ignore').encode('utf-8')
import chardet # chardet.detect 可以试探字符串类型,估计是某种字符的概率
type_decode = chardet.detect(yourchar)['encoding']
communicate = yourchar.decode(type_decode, errors='ignore').encode('utf-8')
errors:
因为unicode 只有128那么长,所以为了“容错”,这里有3个级别,
errors='strict' # 很严格,出错(多于128)就异常
errors='replace' # add U+FFFD, 'REPLACEMENT CHARACTER'
errors = 'ignore' # 用短的替换
python 字符编码 转换的更多相关文章
- Python—字符编码转换、函数基本操作
字符编码转换 函数 #声明文件编码,格式如下: #-*- coding:utf-8 -*- 注意此处只是声明了文件编码格式,python的默认编码还是unicode 字符编码转换: import sy ...
- day4学python 字符编码转换+元组概念
字符编码转换+元组概念 字符编码转换 #coding:gbk //此处必声明 文件编码(看右下角编码格式) #用来得到python默认编码 import sys print(sys.getdefaul ...
- python字符编码转换说明及深浅copy介绍
编码说明: 常用编码介绍: ascii 数字,字母 特殊字符. 字节:8位表示一个字节. 字符:是你看到的内容的最小组成单位. abc : a 一个字符. 中国:中 一个字符. a : 0000 10 ...
- Python字符编码转换
编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把.不过感觉这哥们的答案并没把编码问题写 ...
- python字符编码(二)
一.什么是字符编码 计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电压(高低压即二进制数1,低电压即二进制数0),也就是说计算机只认识数字 编程的目的是让计算机干活,而 ...
- 深入理解Python字符编码--转
http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...
- 深入理解Python字符编码
不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...
- Learning-Python【8】:Python字符编码
1.内存和硬盘都是用来存储的 内存:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的 ...
- 关于Python字符编码encode和decode
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 记得几天前,部门的一个小姑娘问我,怎么她Python打印出来的中文信息都乱码了?我走过去,略思一二,瞬间给她搞定,其实这是字 ...
随机推荐
- 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务
本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...
- 使用jedis操作redis
一 连通性 1. 简单代码测试连通性 Jedis jedis = new Jedis(".......", 6379); String keys = "name" ...
- 使用maven一步一步构建spring mvc项目
1 使用eclipse构建maven web项目 1.1新建Maven的web项目 打开菜单File –New-MavenProject. 点击Next 选择模板类型archtype——ma ...
- (转)WCF开发框架形成之旅---WCF的几种寄宿方式
WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便.高效提供服务调用.本文分别对这几种方式进行详 ...
- Emacs使用projectile-rails 插件注意事项
插件地址 https://github.com/asok/projectile-rails 我自己使用rbenv这个ruby版本控制工具来,管理下载ruby,但是他不是全局安装ruby之类的gem,如 ...
- dede 二次开发系统迁移到 IIS 时会出现的问题及解决方案
1.IIS 会默认站点所有文件只读,故一开始请打开目录权限,注意赋予权限对象是 webuser 或 IIS user; 若是集群的话,则目录共享给IIS对应的用户 2.后台不能登陆 查看数据库配置文 ...
- linux查找日志技巧
对于从事web开发的人员来说.服务器上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望能对您有所帮助: 工具/原料 linux SecureCR ...
- APP UI设计及切图规范
APP UI设计及切图规范 1.概述 1.1 编写目的 该文档主要针对移动端开发的视觉设计和开发过程中的工作环节做统一的规划规范,是系统进入UI设计的前置文档.部分内容来自网络收集修编,转载请注明由 ...
- [转]Amazon AWS亚马逊云服务免费一年VPS主机成功申请和使用方法
今天部落将再次为大家介绍如何成功申请到来自亚马逊的Amazon AWS免费一年的VPS主机服务.亚马逊公司这个就不用介绍了,是美国最大的一家网络电子商务公司,亚马逊弹性计算云Amazon EC2更是鼎 ...
- NSURLConnection使用
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...