python 编码转换
来源:互联网 发布:java对象和json的转换 编辑:程序博客网 时间:2024/05/29 08:37
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换。 常见的编码转换分为以下几种情况: 可以使用 chardet 模块自动识别 字符创编码 chardet 使用方法 例如:a为unicode编码 要转为gb2312。a.encode('gb2312') GB 码,全称是GB2312-80《信息交换用汉字编码字符集基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P- Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。 GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。 GBK 包括 GB2312的所有编码,有些字GB2312没有,需要用GBK来编码。 转: gbk, gb2312,big5,unicode,utf-8,utf-16的区别 例如:a为gb2312编码,要转为unicode. unicode(a, 'gb2312')或a.decode('gb2312') 编码1(GBK,GB2312) 转换为 编码2(utf-8,utf-16,ISO-8859-1) 可以先转为unicode再转为编码2 如gb2312转utf-8 isinstance(s, str) 用来判断是否为一般字符串 下面代码为将任意字符串转换为unicode 为什么不所有的文件都使用unicode,还要用GBK,utf-8等编码呢? unicode可以称为抽象编码,也就是它只是一种内部表示,一般不能直接保存。 除上以上的编码方法,在读写文件时还可以使用codecs的open方法在读写时进行转换。 可以用python自带的模块locale来检测命令行默认编码和设置命令行编码。自动识别 字符串编码
unicode 转换为其它编码(GBK, GB2312等)
# -*- coding=gb2312 -*-a = u"中文"a_gb2312 = a.encode('gb2312')print a_gb2312
GBK 与 GB2312的区别
其它编码(utf-8,GBK)转换为unicode
# -*- coding=gb2312 -*-a = u"中文"a_gb2312 = a.encode('gb2312')print a_gb2312 a_unicode = a_gb2312.decode('gb2312')assert(a_unicode == a)a_utf_8 = a_unicode.encode('utf-8')print a_utf_8
非unicode编码之间的转换
# -*- coding=gb2312 -*-a = u"中文"a_gb2312 = a.encode('gb2312')print a_gb2312 a_unicode = a_gb2312.decode('gb2312')assert(a_unicode == a)a_utf_8 = a_unicode.encode('utf-8')print a_utf_8
判断字符串的编码
isinstance(s, unicode) 用来判断是否为unicode
如果一个字符串已经是unicode了,再执行unicode转换有时会出错(并不都出错) def u(s, encoding): if isinstance(s, unicode): return s else: return unicode(s, encoding)
unicode 与其它编码之间的区别
保存到磁盘上时,需要把它转换为对应的编码,如utf-8和utf-16。其它方法
命令行默认编码检测和设置
import locale #get locale.getdefaultlocale()#('zh_CN', 'cp936') #setlocale.setlocale(...)
汉字转Unicode编码
pd_name = pd_name.decode('utf-8') print pd_name nname = "" for c in pd_name: c = "%%u%04X" % ord(c); nname += c
- python中编码转换
- python 编码转换
- python 编码转换
- python 编码转换
- python 编码转换
- python编码转换
- python编码转换
- PYTHON编码转换小记
- PYTHON编码转换
- Python - 编码转换
- python中文编码转换
- python 编码转换
- python编码转换
- python中的编码转换
- Python 编码转换
- Python - 编码转换
- python 编码转换
- Python - 编码转换
- asp.net使用response.redirect后无法弹出对话框解决办法
- Delphi快速入门(三)
- 从软件工程师到IT猎头:说说跳槽那点事
- MTK 35快捷键添加
- fcntl的close-on-exec标志
- python 编码转换
- mac
- 从软件工程师到IT猎头再续:谈谈高科技行业工程师发展的尴尬
- Gallery3D源码分析
- 字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
- 使用TSS API test suite检测TSS
- 常用mysql语句备忘
- InternetSetCookieEx和InternetGetCookieEx使用tip(COOKIE文件格式)
- [转] VC使用CRT调试功能来检测内存泄漏